----------------------------------------------------------------------------- MANIFEST | 230 - Makefile | 44 aclocal.m4 | 245 - config.guess | 30 config.sub | 45 configure | 2473 +++++++---- configure.in | 6 doc/CHANGES | 83 doc/CREDITS | 91 doc/TODO | 82 doc/WHATSNEW | 2 doc/keymap.sample | 3 doc/mailcap.sample | 8 doc/tin.1 | 63 doc/tin.5 | 73 include/autoconf.hin | 2 include/bool.h | 2 include/bugrep.h | 2 include/extern.h | 16 include/keymap.h | 5 include/newsrc.h | 2 include/nntplib.h | 2 include/policy.h | 13 include/proto.h | 8 include/rfc2046.h | 2 include/stpwatch.h | 2 include/tcurses.h | 2 include/tin.h | 28 include/tinrc.h | 10 include/tnntp.h | 2 include/trace.h | 2 include/version.h | 14 libcanlock/HOWTO | 65 libcanlock/doc/HOWTO | 65 libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt | 240 - libcanlock/doc/rfc2104.txt | 619 -- libcanlock/doc/rfc2202.txt | 508 -- libcanlock/doc/rfc2286.txt | 396 - pcre/AUTHORS | 4 pcre/COPYING | 6 pcre/ChangeLog | 442 ++ pcre/LICENCE | 4 pcre/Makefile.in | 1 pcre/Makefile.in-old | 20 pcre/NEWS | 41 pcre/NON-UNIX-USE | 24 pcre/README | 65 pcre/RunTest.in | 2 pcre/config.h | 5 pcre/configure.in | 290 + pcre/dftables.c | 11 pcre/doc/pcre.3 | 1916 ++++++++- pcre/doc/pcrepattern.3 | 164 pcre/pcre.h | 20 pcre/pcre_compile.c | 3394 ++++++++-------- pcre/pcre_dfa_exec.c | 612 ++ pcre/pcre_exec.c | 1228 +++-- pcre/pcre_get.c | 121 pcre/pcre_globals.c | 15 pcre/pcre_internal.h | 407 + pcre/pcre_maketables.c | 4 pcre/pcre_newline.c | 135 pcre/pcre_printint.src | 118 pcre/pcre_study.c | 172 pcre/pcre_tables.c | 10 pcre/pcre_try_flipped.c | 4 pcre/pcre_ucp_searchfuncs.c | 16 pcre/pcre_valid_utf8.c | 2 pcre/pcre_version.c | 30 pcre/pcredemo.c | 10 pcre/pcregrep.c | 342 + pcre/pcreposix.c | 20 pcre/pcretest.c | 613 ++ pcre/perltest | 40 pcre/testdata/testinput1 | 192 pcre/testdata/testinput2 | 1312 ++++-- pcre/testdata/testinput4 | 10 pcre/testdata/testinput5 | 90 pcre/testdata/testinput6 | 24 pcre/testdata/testinput7 | 223 + pcre/testdata/testinput8 | 53 pcre/testdata/testoutput1 | 318 + pcre/testdata/testoutput2 | 3733 +++++++++++++----- pcre/testdata/testoutput3 | 6 pcre/testdata/testoutput4 | 16 pcre/testdata/testoutput5 | 585 ++ pcre/testdata/testoutput6 | 40 pcre/testdata/testoutput7 | 444 ++ pcre/testdata/testoutput8 | 110 pcre/ucp.h | 11 pcre/ucpinternal.h | 5 pcre/ucptable.c | 158 po/de.gmo |binary po/de.po | 1896 ++++----- po/en_GB.gmo |binary po/en_GB.po | 1875 ++++----- po/et.gmo |binary po/et.po | 1894 ++++----- po/fr.gmo |binary po/fr.po | 1900 ++++----- po/ru.gmo |binary po/ru.po | 2153 +++++----- po/rw.gmo |binary po/rw.po | 1896 ++++----- po/sv.gmo |binary po/sv.po | 1875 ++++----- po/tin.pot | 1887 ++++----- po/tr.gmo |binary po/tr.po | 1903 ++++----- src/Makefile.in | 3 src/active.c | 2 src/art.c | 75 src/attrib.c | 9 src/auth.c | 6 src/charset.c | 46 src/color.c | 2 src/config.c | 69 src/cook.c | 117 src/debug.c | 2 src/envarg.c | 2 src/feed.c | 36 src/filter.c | 15 src/global.c | 2 src/group.c | 16 src/hashstr.c | 2 src/header.c | 2 src/help.c | 9 src/inews.c | 2 src/init.c | 30 src/joinpath.c | 2 src/keymap.c | 29 src/lang.c | 69 src/list.c | 2 src/lock.c | 6 src/mail.c | 6 src/main.c | 33 src/makecfg.c | 2 src/memory.c | 2 src/mimetypes.c | 2 src/misc.c | 2 src/my_tmpfile.c | 2 src/newsrc.c | 2 src/nntplib.c | 241 - src/nrctbl.c | 2 src/options_menu.c | 44 src/page.c | 29 src/pgp.c | 2 src/post.c | 267 - src/prompt.c | 2 src/read.c | 2 src/refs.c | 2 src/regex.c | 2 src/rfc1524.c | 2 src/rfc2045.c | 2 src/rfc2046.c | 2 src/rfc2047.c | 2 src/save.c | 34 src/screen.c | 2 src/search.c | 2 src/select.c | 6 src/sigfile.c | 2 src/signal.c | 2 src/strftime.c | 2 src/string.c | 2 src/tags.c | 2 src/tcurses.c | 11 src/thread.c | 7 src/tincfg.tbl | 10 src/trace.c | 2 src/version.c | 2 src/xface.c | 2 src/xref.c | 2 tin.spec | 4 tools/tinews.pl | 2 174 files changed, 25253 insertions(+), 16452 deletions(-) ----------------------------------------------------------------------------- diff -Nurp tin-1.9.1/MANIFEST tin-1.9.2/MANIFEST --- tin-1.9.1/MANIFEST 2006-04-09 18:34:39.000000000 +0200 +++ tin-1.9.2/MANIFEST 2007-02-01 15:09:13.822639095 +0100 @@ -1,27 +1,27 @@ -MANIFEST for tin-1.9.1 (Sun Apr 9 18:34:38 CEST 2006) +MANIFEST for tin-1.9.2 (Thu Feb 1 15:09:13 CET 2007) ---------------------------------------------------- - 13113 ./Makefile - 7678 ./MANIFEST + 13104 ./Makefile + 7558 ./MANIFEST 1440 ./README 564 ./README.MAC 1006 ./README.WIN - 150679 ./aclocal.m4 + 155443 ./aclocal.m4 882 ./conf-tin - 43937 ./config.guess - 32372 ./config.sub - 491128 ./configure + 44469 ./config.guess + 32587 ./config.sub + 505380 ./configure 31023 ./configure.in 7123 ./install.sh 838 ./mkdirs.sh 1505 ./tin.spec 18847 ./doc/ABOUT-NLS - 2112 ./doc/CHANGES + 5299 ./doc/CHANGES 252172 ./doc/CHANGES.old - 4895 ./doc/CREDITS + 4956 ./doc/CREDITS 1469 ./doc/DEBUG_REFS 30011 ./doc/INSTALL - 34823 ./doc/TODO - 162 ./doc/WHATSNEW + 33061 ./doc/TODO + 232 ./doc/WHATSNEW 2618 ./doc/art_handling.txt 1700 ./doc/article.txt 3862 ./doc/auth.txt @@ -30,8 +30,8 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 35304 ./doc/good-netkeeping-seal 3803 ./doc/internals.txt 23621 ./doc/iso2asc.txt - 3488 ./doc/keymap.sample - 660 ./doc/mailcap.sample + 3476 ./doc/keymap.sample + 572 ./doc/mailcap.sample 3365 ./doc/mime.types 1541 ./doc/nov_tests 5155 ./doc/opt-case.1 @@ -47,8 +47,8 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 4168 ./doc/mmdf.5 2128 ./doc/newsoverview.5 6963 ./doc/plp_snprintf.3 - 118214 ./doc/tin.1 - 72829 ./doc/tin.5 + 118450 ./doc/tin.1 + 73027 ./doc/tin.5 4733 ./doc/w2r.1 2196 ./doc/wildmat.3 344 ./tools/expiretover @@ -61,63 +61,63 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 1661 ./tools/expand_aliases.tgz 2778 ./include/bool.h 1947 ./include/bugrep.h - 58841 ./include/extern.h - 13625 ./include/keymap.h + 59085 ./include/extern.h + 13574 ./include/keymap.h 6340 ./include/newsrc.h 8397 ./include/nntplib.h 665 ./include/plp_snprintf.h - 12538 ./include/policy.h - 31008 ./include/proto.h + 12520 ./include/policy.h + 30892 ./include/proto.h 5047 ./include/rfc2046.h 3373 ./include/stpwatch.h 5756 ./include/tcurses.h - 59301 ./include/tin.h - 13398 ./include/tinrc.h + 59588 ./include/tin.h + 13568 ./include/tinrc.h 4405 ./include/tnntp.h 2264 ./include/trace.h - 2507 ./include/version.h + 2508 ./include/version.h 25899 ./src/active.c - 58423 ./src/art.c - 32260 ./src/attrib.c - 12947 ./src/auth.c - 13728 ./src/charset.c + 59717 ./src/art.c + 32522 ./src/attrib.c + 12972 ./src/auth.c + 12425 ./src/charset.c 8220 ./src/color.c - 58140 ./src/config.c - 20553 ./src/cook.c + 59004 ./src/config.c + 21665 ./src/cook.c 26667 ./src/curses.c 10378 ./src/debug.c 3408 ./src/envarg.c - 26308 ./src/feed.c - 56651 ./src/filter.c + 27169 ./src/feed.c + 56748 ./src/filter.c 18114 ./src/getline.c 9070 ./src/global.c - 47307 ./src/group.c + 47404 ./src/group.c 3900 ./src/hashstr.c 8351 ./src/header.c - 28753 ./src/help.c + 28708 ./src/help.c 13665 ./src/inews.c - 33304 ./src/init.c + 33383 ./src/init.c 2145 ./src/joinpath.c - 90146 ./src/keymap.c - 117417 ./src/lang.c + 89717 ./src/keymap.c + 118045 ./src/lang.c 4486 ./src/langinfo.c 7102 ./src/list.c - 6667 ./src/lock.c - 13489 ./src/mail.c - 21250 ./src/main.c + 6759 ./src/lock.c + 13415 ./src/mail.c + 22105 ./src/main.c 10814 ./src/makecfg.c 12418 ./src/memory.c 5187 ./src/mimetypes.c 89340 ./src/misc.c 39712 ./src/newsrc.c - 45256 ./src/nntplib.c + 45995 ./src/nntplib.c 7192 ./src/nrctbl.c - 41832 ./src/options_menu.c - 58527 ./src/page.c + 42537 ./src/options_menu.c + 58375 ./src/page.c 24138 ./src/parsdate.y 16966 ./src/plp_snprintf.c 12713 ./src/pgp.c - 133419 ./src/post.c + 132521 ./src/post.c 18446 ./src/prompt.c 10071 ./src/read.c 25559 ./src/refs.c @@ -126,19 +126,19 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 15046 ./src/rfc2045.c 29853 ./src/rfc2046.c 32609 ./src/rfc2047.c - 36840 ./src/save.c + 37062 ./src/save.c 11358 ./src/screen.c 16533 ./src/search.c - 30811 ./src/select.c + 30804 ./src/select.c 7590 ./src/sigfile.c 12476 ./src/signal.c 7215 ./src/strftime.c 23476 ./src/string.c 13852 ./src/tags.c - 16944 ./src/tcurses.c + 16965 ./src/tcurses.c 3071 ./src/tmpfile.c 3364 ./src/my_tmpfile.c - 40369 ./src/thread.c + 40413 ./src/thread.c 2472 ./src/trace.c 4347 ./src/version.c 5453 ./src/wildmat.c @@ -146,73 +146,76 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 7784 ./src/xref.c 422 ./pcre/AUTHORS 2515 ./pcre/COPYING - 95469 ./pcre/ChangeLog + 118928 ./pcre/ChangeLog 8049 ./pcre/INSTALL 2515 ./pcre/LICENCE - 2956 ./pcre/Makefile.in - 26060 ./pcre/Makefile.in-old - 10800 ./pcre/NEWS - 10634 ./pcre/NON-UNIX-USE - 23456 ./pcre/README - 6164 ./pcre/RunTest.in - 147 ./pcre/config.h - 5876 ./pcre/dftables.c - 11912 ./pcre/pcre.h + 2974 ./pcre/Makefile.in + 26802 ./pcre/Makefile.in-old + 12409 ./pcre/NEWS + 11121 ./pcre/NON-UNIX-USE + 24136 ./pcre/README + 6161 ./pcre/RunTest.in + 225 ./pcre/config.h + 8703 ./pcre/configure.in + 6369 ./pcre/dftables.c 1171 ./pcre/pcre-config.in - 162063 ./pcre/pcre_compile.c + 12396 ./pcre/pcre.h + 172486 ./pcre/pcre_compile.c 3504 ./pcre/pcre_config.c - 68288 ./pcre/pcre_dfa_exec.c - 117538 ./pcre/pcre_exec.c + 80853 ./pcre/pcre_dfa_exec.c + 126511 ./pcre/pcre_exec.c 4933 ./pcre/pcre_fullinfo.c - 11915 ./pcre/pcre_get.c - 3159 ./pcre/pcre_globals.c + 15178 ./pcre/pcre_get.c + 3745 ./pcre/pcre_globals.c 3845 ./pcre/pcre_info.c - 37990 ./pcre/pcre_internal.h - 5456 ./pcre/pcre_maketables.c + 42748 ./pcre/pcre_internal.h + 5462 ./pcre/pcre_maketables.c + 5075 ./pcre/pcre_newline.c 2973 ./pcre/pcre_ord2utf8.c - 12832 ./pcre/pcre_printint.src + 13710 ./pcre/pcre_printint.src 3315 ./pcre/pcre_refcount.c - 14380 ./pcre/pcre_study.c - 8792 ./pcre/pcre_tables.c - 5336 ./pcre/pcre_try_flipped.c - 5997 ./pcre/pcre_ucp_searchfuncs.c - 4470 ./pcre/pcre_valid_utf8.c - 2627 ./pcre/pcre_version.c + 17616 ./pcre/pcre_study.c + 9041 ./pcre/pcre_tables.c + 5354 ./pcre/pcre_try_flipped.c + 6054 ./pcre/pcre_ucp_searchfuncs.c + 4460 ./pcre/pcre_valid_utf8.c + 3905 ./pcre/pcre_version.c 4607 ./pcre/pcre_xclass.c - 11707 ./pcre/pcredemo.c - 50765 ./pcre/pcregrep.c - 11074 ./pcre/pcreposix.c + 11732 ./pcre/pcredemo.c + 57059 ./pcre/pcregrep.c + 11801 ./pcre/pcreposix.c 4775 ./pcre/pcreposix.h - 55784 ./pcre/pcretest.c - 5247 ./pcre/perltest - 2656 ./pcre/ucp.h - 3376 ./pcre/ucpinternal.h - 89059 ./pcre/ucptable.c - 9814 ./pcre/doc/pcre.3 - 65123 ./pcre/doc/pcrepattern.3 - 74037 ./pcre/testdata/testinput1 - 27506 ./pcre/testdata/testinput2 + 66834 ./pcre/pcretest.c + 4812 ./pcre/perltest + 3027 ./pcre/ucp.h + 3452 ./pcre/ucpinternal.h + 92082 ./pcre/ucptable.c + 74510 ./pcre/doc/pcre.3 + 63013 ./pcre/doc/pcrepattern.3 + 75951 ./pcre/testdata/testinput1 + 36304 ./pcre/testdata/testinput2 932 ./pcre/testdata/testinput3 - 8420 ./pcre/testdata/testinput4 - 3558 ./pcre/testdata/testinput5 - 10209 ./pcre/testdata/testinput6 - 74603 ./pcre/testdata/testinput7 - 8795 ./pcre/testdata/testinput8 + 8498 ./pcre/testdata/testinput4 + 4766 ./pcre/testdata/testinput5 + 10717 ./pcre/testdata/testinput6 + 77627 ./pcre/testdata/testinput7 + 9623 ./pcre/testdata/testinput8 11437 ./pcre/testdata/testinput9 - 98413 ./pcre/testdata/testoutput1 - 124961 ./pcre/testdata/testoutput2 - 2218 ./pcre/testdata/testoutput3 - 14740 ./pcre/testdata/testoutput4 - 23439 ./pcre/testdata/testoutput5 - 20608 ./pcre/testdata/testoutput6 - 103554 ./pcre/testdata/testoutput7 - 51389 ./pcre/testdata/testoutput8 + 101396 ./pcre/testdata/testoutput1 + 161801 ./pcre/testdata/testoutput2 + 2272 ./pcre/testdata/testoutput3 + 14871 ./pcre/testdata/testoutput4 + 29008 ./pcre/testdata/testoutput5 + 21297 ./pcre/testdata/testoutput6 + 108966 ./pcre/testdata/testoutput7 + 53056 ./pcre/testdata/testoutput8 28769 ./pcre/testdata/testoutput9 19917 ./include/autoconf.hin - 21094 ./src/Makefile.in - 7657 ./src/tincfg.tbl + 21083 ./src/Makefile.in + 7705 ./src/tincfg.tbl 946 ./libcanlock/Build 882 ./libcanlock/CHANGES + 2357 ./libcanlock/HOWTO 789 ./libcanlock/MANIFEST 1351 ./libcanlock/README 10829 ./libcanlock/base64.c @@ -233,11 +236,6 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 640 ./libcanlock/md5.h 7324 ./libcanlock/sha1.c 677 ./libcanlock/sha1.h - 2357 ./libcanlock/doc/HOWTO - 8554 ./libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt - 22297 ./libcanlock/doc/rfc2104.txt - 11942 ./libcanlock/doc/rfc2202.txt - 11843 ./libcanlock/doc/rfc2286.txt 9850 ./intl/bindtextdom.c 72 ./intl/ChangeLog 13325 ./intl/config.charset @@ -271,21 +269,21 @@ MANIFEST for tin-1.9.1 (Sun Apr 9 18:34 41 ./intl/VERSION 4962 ./po/Makefile.inn 847 ./po/POTFILES.in - 123241 ./po/tin.pot - 166688 ./po/de.gmo - 199619 ./po/de.po + 123927 ./po/tin.pot + 167511 ./po/de.gmo + 200881 ./po/de.po 7359 ./po/en_GB.gmo - 125825 ./po/en_GB.po - 159182 ./po/et.gmo - 190832 ./po/et.po - 162233 ./po/fr.gmo - 196318 ./po/fr.po - 124139 ./po/ru.gmo - 175572 ./po/ru.po + 126523 ./po/en_GB.po + 157684 ./po/et.gmo + 191031 ./po/et.po + 160588 ./po/fr.gmo + 196829 ./po/fr.po + 128200 ./po/ru.gmo + 178642 ./po/ru.po 2081 ./po/rw.gmo - 169441 ./po/rw.po + 170003 ./po/rw.po 23145 ./po/sv.gmo - 130546 ./po/sv.po + 131244 ./po/sv.po 5889 ./po/tr.gmo - 190216 ./po/tr.po -7661174 total + 190760 ./po/tr.po +7885201 total diff -Nurp tin-1.9.1/Makefile tin-1.9.2/Makefile --- tin-1.9.1/Makefile 2006-04-09 18:34:37.000000000 +0200 +++ tin-1.9.2/Makefile 2007-02-01 15:09:12.715775852 +0100 @@ -1,15 +1,15 @@ # Top level Makefile for tin # - for configuration options read the doc/INSTALL file. # -# Updated: 2006-02-15 +# Updated: 2006-12-21 # PROJECT = tin LVER = 1 PVER = 9 -SVER = 1 +SVER = 2 VER = $(LVER).$(PVER).$(SVER) -DVER = 20060409 +DVER = 20070201 EXE = tin # directory structure @@ -191,9 +191,10 @@ PCRE = \ $(PCREDIR)/README \ $(PCREDIR)/RunTest.in \ $(PCREDIR)/config.h \ + $(PCREDIR)/configure.in \ $(PCREDIR)/dftables.c \ - $(PCREDIR)/pcre.h \ $(PCREDIR)/pcre-config.in \ + $(PCREDIR)/pcre.h \ $(PCREDIR)/pcre_compile.c \ $(PCREDIR)/pcre_config.c \ $(PCREDIR)/pcre_dfa_exec.c \ @@ -204,6 +205,7 @@ PCRE = \ $(PCREDIR)/pcre_info.c \ $(PCREDIR)/pcre_internal.h \ $(PCREDIR)/pcre_maketables.c \ + $(PCREDIR)/pcre_newline.c \ $(PCREDIR)/pcre_ord2utf8.c \ $(PCREDIR)/pcre_printint.src \ $(PCREDIR)/pcre_refcount.c \ @@ -247,6 +249,7 @@ PCRE = \ CAN = \ $(CANDIR)/Build \ $(CANDIR)/CHANGES \ + $(CANDIR)/HOWTO \ $(CANDIR)/MANIFEST \ $(CANDIR)/README \ $(CANDIR)/base64.c \ @@ -266,17 +269,12 @@ CAN = \ $(CANDIR)/md5.c \ $(CANDIR)/md5.h \ $(CANDIR)/sha1.c \ - $(CANDIR)/sha1.h \ - $(CANDIR)/doc/HOWTO \ - $(CANDIR)/doc/draft-ietf-usefor-cancel-lock-01.txt \ - $(CANDIR)/doc/rfc2104.txt \ - $(CANDIR)/doc/rfc2202.txt \ - $(CANDIR)/doc/rfc2286.txt + $(CANDIR)/sha1.h MISC = \ $(INCDIR)/autoconf.hin \ $(SRCDIR)/Makefile.in \ - $(SRCDIR)/tincfg.tbl \ + $(SRCDIR)/tincfg.tbl INTLFILES = \ $(INTLDIR)/bindtextdom.c \ @@ -335,7 +333,7 @@ POFILES = \ ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES) -ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(CANDIR)/doc $(INTLDIR) $(PODIR) +ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(INTLDIR) $(PODIR) # standard commands CD = cd @@ -421,12 +419,12 @@ chmod: @$(CHMOD) 644 $(ALL_FILES) @$(CHMOD) 755 \ $(ALL_DIRS) \ - ./conf-tin \ - ./config.guess \ - ./config.sub \ - ./configure \ - ./install.sh \ - ./mkdirs.sh \ + $(TOPDIR)/conf-tin \ + $(TOPDIR)/config.guess \ + $(TOPDIR)/config.sub \ + $(TOPDIR)/configure \ + $(TOPDIR)/install.sh \ + $(TOPDIR)/mkdirs.sh \ $(TOLDIR)/expiretover \ $(TOLDIR)/metamutt \ $(TOLDIR)/opt-case.pl \ @@ -496,10 +494,10 @@ distclean: @-if $(TEST) -r $(INTLDIR)/Makefile ; then $(CD) $(INTLDIR) && $(MAKE) distclean ; fi @-if $(TEST) -r $(PCREDIR)/Makefile ; then $(CD) $(PCREDIR) && $(MAKE) distclean ; fi @-$(RM) -f \ - config.cache \ - config.log \ - config.status \ - td-conf.out \ + $(TOPDIR)/config.cache \ + $(TOPDIR)/config.log \ + $(TOPDIR)/config.status \ + $(TOPDIR)/td-conf.out \ $(INCDIR)/autoconf.h \ $(SRCDIR)/Makefile \ $(PCREDIR)/Makefile \ @@ -509,4 +507,4 @@ configure: configure.in aclocal.m4 autoconf config.status: configure - ./config.status --recheck + $(TOPDIR)/config.status --recheck diff -Nurp tin-1.9.1/aclocal.m4 tin-1.9.2/aclocal.m4 --- tin-1.9.1/aclocal.m4 2006-03-02 00:49:56.000000000 +0100 +++ tin-1.9.2/aclocal.m4 2006-12-22 02:38:22.755117135 +0100 @@ -2,10 +2,10 @@ dnl Project : tin - a Usenet reader dnl Module : aclocal.m4 dnl Author : Thomas E. Dickey dnl Created : 1995-08-24 -dnl Updated : 2006-03-02 +dnl Updated : 2006-12-21 dnl Notes : dnl -dnl Copyright (c) 1995-2006 Thomas E. Dickey +dnl Copyright (c) 1995-2007 Thomas E. Dickey dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without @@ -276,7 +276,7 @@ AC_DEFUN([AM_LC_MESSAGES], fi fi])dnl dnl --------------------------------------------------------------------------- -dnl AM_MULTIBYTE_ABLE version: 6 updated: 2004/01/19 12:11:07 +dnl AM_MULTIBYTE_ABLE version: 7 updated: 2006/04/17 08:26:33 dnl ----------------- dnl dnl check for required multibyte/widechar functions @@ -355,7 +355,7 @@ AC_DEFUN([AM_MULTIBYTE_ABLE], fi ]) dnl --------------------------------------------------------------------------- -dnl AM_PATH_PROG_WITH_TEST version: 5 updated: 2002/10/27 23:21:42 +dnl AM_PATH_PROG_WITH_TEST version: 7 updated: 2006/08/06 19:45:29 dnl ---------------------- dnl Inserted as requested by gettext 0.10.40 dnl File from /usr/share/aclocal @@ -384,16 +384,17 @@ set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in - /*) + [[\\/]*|?:[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) + if test -n "$PATH_SEPARATOR"; then PATHSEP="$PATH_SEPARATOR"; fi IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word$ac_exeext; then if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" + ac_cv_path_$1="$ac_dir/$ac_word$ac_exeext" break fi fi @@ -414,7 +415,7 @@ fi AC_SUBST($1)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl AM_WITH_NLS version: 17 updated: 2004/01/23 19:52:21 +dnl AM_WITH_NLS version: 18 updated: 2006/01/22 20:26:00 dnl ----------- dnl Inserted as requested by gettext 0.10.40 dnl File from /usr/share/aclocal @@ -504,8 +505,9 @@ AC_DEFUN([AM_WITH_NLS], define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc]) define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl]) - AC_CHECK_HEADER(libintl.h, - [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + CF_FIND_HEADER(libintl.h,gettext, + [AC_DEFINE(HAVE_LIBINTL_H) + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); @@ -514,17 +516,13 @@ return (int) gettext ("")]ifelse([$2], n gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then - AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $LIBICONV" - AC_TRY_LINK([#include + CF_FIND_LINKAGE([#include extern int _nl_msg_cat_cntr;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr], +intl, gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) - LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, @@ -1583,7 +1581,7 @@ AC_MSG_RESULT($cf_cv_cpp_expands) test $cf_cv_cpp_expands = yes && AC_DEFINE(CPP_DOES_EXPAND) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CURSES_CPPFLAGS version: 7 updated: 2003/06/06 00:48:41 +dnl CF_CURSES_CPPFLAGS version: 9 updated: 2006/02/04 19:44:43 dnl ------------------ dnl Look for the curses headers. AC_DEFUN([CF_CURSES_CPPFLAGS],[ @@ -1591,7 +1589,7 @@ AC_DEFUN([CF_CURSES_CPPFLAGS],[ AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[ cf_cv_curses_incdir=no case $host_os in #(vi -hpux10.*|hpux11.*) #(vi +hpux10.*) #(vi test -d /usr/include/curses_colr && \ cf_cv_curses_incdir="-I/usr/include/curses_colr" ;; @@ -1604,6 +1602,17 @@ esac ]) test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS" +CF_CURSES_HEADER +CF_TERM_HEADER +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_CURSES_HEADER version: 1 updated: 2005/12/31 13:28:25 +dnl ---------------- +dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common +dnl variations of ncurses' installs. +dnl +dnl See also CF_NCURSES_HEADER, which sets the same cache variable. +AC_DEFUN([CF_CURSES_HEADER],[ AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[ cf_cv_ncurses_header=none for cf_header in \ @@ -1624,10 +1633,9 @@ fi # cheat, to get the right #define's for HAVE_NCURSES_H, etc. AC_CHECK_HEADERS($cf_cv_ncurses_header) - ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CURSES_LIBS version: 23 updated: 2003/11/06 19:59:57 +dnl CF_CURSES_LIBS version: 24 updated: 2006/02/04 19:44:43 dnl -------------- dnl Look for the curses libraries. Older curses implementations may require dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first. @@ -1646,7 +1654,7 @@ case $host_os in #(vi freebsd*) #(vi AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"]) ;; -hpux10.*|hpux11.*) #(vi +hpux10.*) #(vi AC_CHECK_LIB(cur_colr,initscr,[ LIBS="-lcur_colr $LIBS" ac_cv_func_initscr=yes @@ -1996,6 +2004,38 @@ AC_DEFUN([CF_ERRNO], CF_CHECK_ERRNO(errno) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_FIND_HEADER version: 1 updated: 2006/01/22 20:26:00 +dnl -------------- +dnl Find a header file, searching for it if it is not already in the include +dnl path. +dnl +dnl $1 = the header filename +dnl $2 = the package name +dnl $3 = action to perform if successful +dnl $4 = action to perform if not successful +AC_DEFUN([CF_FIND_HEADER],[ +AC_CHECK_HEADER([$1], + cf_find_header=yes,[ + cf_find_header=no +CF_HEADER_PATH(cf_search,$2) +for cf_incdir in $cf_search +do + if test -f $cf_incdir/$1 ; then + CF_ADD_CFLAGS(-I$cf_incdir) + CF_VERBOSE(... found in $cf_incdir) + cf_find_header=yes + break + fi + CF_VERBOSE(... tested $cf_incdir) +done +]) +if test "$cf_find_header" = yes ; then +ifelse([$3],,:,[$3]) +ifelse([$4],,,[else +$4]) +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_FIND_IPV6_LIBS version: 6 updated: 2002/11/09 09:05:18 dnl ----------------- dnl Based on the IPV6 stack type, look for the corresponding library. @@ -2207,6 +2247,45 @@ fi ]) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_FIND_LINKAGE version: 1 updated: 2006/01/22 20:26:00 +dnl --------------- +dnl Find a library, searching for it if it is not already in the library path. +dnl +dnl $1 = headers for library entrypoint +dnl $2 = code fragment for library entrypoint +dnl $3 = the library name without the "-l" option or ".so" suffix. +dnl $4 = action to perform if successful +dnl $5 = action to perform if not successful +AC_DEFUN([CF_FIND_LINKAGE],[ +AC_TRY_LINK([$1],[$2], + cf_find_linkage=yes,[ + cf_find_linkage=no +CF_LIBRARY_PATH(cf_search,$3) +cf_save_LIBS="$LIBS" +cf_save_LDFLAGS="$LDFLAGS" +for cf_libdir in $cf_search +do + if test -d $cf_libdir ; then + LIBS="-l$3 $cf_save_LIBS" + LDFLAGS="$cf_save_LDFLAGS -L$cf_libdir" + AC_TRY_LINK([$1],[$2],[ + CF_VERBOSE(... found in $cf_libdir) + cf_find_linkage=yes + break],[ + LIBS="$cf_save_LIBS" + LDFLAGS="$cf_save_LDFLAGS"]) + fi + CF_VERBOSE(... tested $cf_libdir) +done +]) + +if test "$cf_find_linkage" = yes ; then +ifelse([$4],,:,[$4]) +ifelse([$5],,,[else +$5]) +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_FIX_SLASHES version: 2 updated: 2001/05/27 21:36:02 dnl -------------- dnl OS/2 and Cygwin ports may pick up backslashes in pathnames, which are not @@ -2757,7 +2836,7 @@ done ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27 +dnl CF_MAKEFLAGS version: 10 updated: 2006/08/05 09:56:13 dnl ------------ dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make' dnl options to lower-levels. It's very useful for "make -n" -- if we have it. @@ -2786,7 +2865,8 @@ CF_EOF esac break ;; - *) echo no match "$cf_result" + .-) ;; + *) echo "given option \"$cf_option\", no match \"$cf_result\"" ;; esac done @@ -2866,7 +2946,7 @@ printf("old\n"); ,[$1=no]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_CPPFLAGS version: 17 updated: 2003/11/06 19:59:57 +dnl CF_NCURSES_CPPFLAGS version: 18 updated: 2005/12/31 13:26:39 dnl ------------------- dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting dnl the CPPFLAGS variable so we can include its header. @@ -2907,9 +2987,27 @@ AC_CACHE_CHECK(for $cf_ncuhdr_root heade done ]) +CF_NCURSES_HEADER +CF_TERM_HEADER + +# some applications need this, but should check for NCURSES_VERSION +AC_DEFINE(NCURSES) + +CF_NCURSES_VERSION +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_NCURSES_HEADER version: 1 updated: 2005/12/31 13:28:37 +dnl ----------------- +dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common +dnl variations of ncurses' installs. +dnl +dnl See also CF_CURSES_HEADER, which sets the same cache variable. +AC_DEFUN([CF_NCURSES_HEADER],[ + if test "$cf_cv_ncurses_h" != no ; then cf_cv_ncurses_header=$cf_cv_ncurses_h else + AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[ test -n "$verbose" && echo CF_HEADER_PATH(cf_search,$cf_ncuhdr_root) @@ -2945,7 +3043,7 @@ AC_CACHE_CHECK(for $cf_ncuhdr_root inclu fi -AC_DEFINE(NCURSES) +# Set definitions to allow ifdef'ing for ncurses.h case $cf_cv_ncurses_header in # (vi *ncurses.h) @@ -2962,7 +3060,6 @@ ncursesw/curses.h|ncursesw/ncurses.h) ;; esac -CF_NCURSES_VERSION ])dnl dnl --------------------------------------------------------------------------- dnl CF_NCURSES_LIBS version: 12 updated: 2004/04/27 16:26:05 @@ -3268,13 +3365,19 @@ fi AC_MSG_RESULT($DEFAULT_MAILER) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38 +dnl CF_PATH_SYNTAX version: 11 updated: 2006/09/02 08:55:46 dnl -------------- dnl Check the argument to see that it looks like a pathname. Rewrite it if it dnl begins with one of the prefix/exec_prefix variables, and then again if the dnl result begins with 'NONE'. This is necessary to work around autoconf's dnl delayed evaluation of those symbols. AC_DEFUN([CF_PATH_SYNTAX],[ +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".[$]$1" in #(vi .\[$]\(*\)*|.\'*\'*) #(vi ;; @@ -3286,12 +3389,12 @@ case ".[$]$1" in #(vi eval $1="[$]$1" case ".[$]$1" in #(vi .NONE/*) - $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%` + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%` ;; *) ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2) @@ -4001,7 +4104,7 @@ test -d /usr && { } ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SUBST version: 2 updated: 1997/09/06 23:41:28 +dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03 dnl -------- dnl Shorthand macro for substituting things that the user may override dnl with an environment variable. @@ -4012,11 +4115,29 @@ dnl $3 = default value AC_DEFUN([CF_SUBST], [AC_CACHE_VAL(cf_cv_subst_$2,[ AC_MSG_CHECKING(for $1 (symbol $2)) -test -z "[$]$2" && $2=$3 +CF_SUBST_IF([-z "[$]$2"], [$2], [$3]) +cf_cv_subst_$2=[$]$2 AC_MSG_RESULT([$]$2) +]) +])dnl +dnl --------------------------------------------------------------------------- +dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03 +dnl ----------- +dnl Shorthand macro for substituting things that the user may override +dnl with an environment variable. +dnl +dnl $1 = condition to pass to "test" +dnl $2 = environment variable +dnl $3 = value if the test succeeds +dnl $4 = value if the test fails +AC_DEFUN([CF_SUBST_IF], +[ +if test $1 ; then + $2=$3 +ifelse($4,,,[else + $2=$4]) +fi AC_SUBST($2) -cf_cv_subst_$2=[$]$2]) -$2=${cf_cv_subst_$2} ])dnl dnl --------------------------------------------------------------------------- dnl CF_SYS_ERRLIST version: 6 updated: 2001/12/30 13:03:23 @@ -4163,6 +4284,53 @@ if test $cf_cv_use_termios_h = yes; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_TERM_HEADER version: 1 updated: 2005/12/31 13:26:39 +dnl -------------- +dnl Look for term.h, which is part of X/Open curses. It defines the interface +dnl to terminfo database. Usually it is in the same include-path as curses.h, +dnl but some packagers change this, breaking various applications. +AC_DEFUN([CF_TERM_HEADER],[ +AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[ +case ${cf_cv_ncurses_header} in #(vi +*/ncurses.h|*/ncursesw.h) #(vi + cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'` + ;; +*) + cf_term_header=term.h + ;; +esac + +for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +do +AC_TRY_COMPILE([#include +#include <${cf_cv_ncurses_header-curses.h}> +#include <$cf_test> +],[int x = auto_left_margin],[ + cf_cv_term_header="$cf_test"],[ + cf_cv_term_header=unknown + ]) + test "$cf_cv_term_header" != unknown && break +done +]) + +# Set definitions to allow ifdef'ing to accommodate subdirectories + +case $cf_cv_term_header in # (vi +*term.h) + AC_DEFINE(HAVE_TERM_H) + ;; +esac + +case $cf_cv_term_header in # (vi +ncurses/term.h) #(vi + AC_DEFINE(HAVE_NCURSES_TERM_H) + ;; +ncursesw/term.h) + AC_DEFINE(HAVE_NCURSESW_TERM_H) + ;; +esac +])dnl +dnl --------------------------------------------------------------------------- dnl CF_TIOCGWINSZ version: 3 updated: 1997/11/29 01:04:53 dnl ------------- dnl On some systems ioctl(fd, TIOCGWINSZ, &size) will always return {0,0} until @@ -4491,7 +4659,7 @@ if test "$with_dmalloc" = yes ; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17 +dnl CF_WITH_PATH version: 7 updated: 2006/08/03 15:20:08 dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. @@ -4506,7 +4674,7 @@ AC_DEFUN([CF_WITH_PATH], [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),, ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl CF_PATH_SYNTAX(withval) -eval $3="$withval" +$3="$withval" AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- @@ -4591,10 +4759,11 @@ AC_TRY_LINK([ test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 23 updated: 2005/10/15 16:39:05 +dnl CF_XOPEN_SOURCE version: 24 updated: 2006/04/02 16:41:09 dnl --------------- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, -dnl or adapt to the vendor's definitions to get equivalent functionality. +dnl or adapt to the vendor's definitions to get equivalent functionality, +dnl without losing the common non-POSIX features. dnl dnl Parameters: dnl $1 is the nominal value for _XOPEN_SOURCE diff -Nurp tin-1.9.1/config.guess tin-1.9.2/config.guess --- tin-1.9.1/config.guess 2006-03-13 01:45:27.000000000 +0100 +++ tin-1.9.2/config.guess 2007-01-29 02:53:00.348281817 +0100 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -timestamp='2006-03-13' +timestamp='2007-01-15' # 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 @@ -160,6 +160,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -210,7 +211,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} @@ -770,6 +771,8 @@ EOF case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac @@ -777,7 +780,7 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -787,10 +790,10 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[345]*) + x86:Interix*:[3456]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T:Interix*:[345]*) + EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) @@ -828,6 +831,9 @@ EOF arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; @@ -944,6 +950,9 @@ EOF x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; + xtensa:Linux:*:*) + echo xtensa-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -986,7 +995,7 @@ EOF LIBC=gnulibc1 # endif #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout @@ -1202,6 +1211,15 @@ EOF SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; diff -Nurp tin-1.9.1/config.sub tin-1.9.2/config.sub --- tin-1.9.1/config.sub 2006-03-08 12:42:42.000000000 +0100 +++ tin-1.9.2/config.sub 2007-01-29 02:51:25.559036803 +0100 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -timestamp='2006-03-07' +timestamp='2007-01-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -240,15 +240,16 @@ case $basic_machine in | 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 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -274,21 +275,19 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ + | score \ | sh | sh[1234] | sh[24]a | 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 \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; - m32c) - basic_machine=$basic_machine-unknown - ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -318,18 +317,18 @@ case $basic_machine in | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ + | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | m32c- | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -368,13 +367,11 @@ case $basic_machine in | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; - m32c-*) - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -912,6 +909,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -923,6 +924,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -1217,7 +1221,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1369,6 +1373,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1406,6 +1416,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; diff -Nurp tin-1.9.1/configure tin-1.9.2/configure --- tin-1.9.1/configure 2006-04-09 18:34:38.000000000 +0200 +++ tin-1.9.2/configure 2007-02-01 15:09:13.095728907 +0100 @@ -863,7 +863,7 @@ fi PACKAGE=tin -VERSION=1.9.1 +VERSION=1.9.2 cat >> confdefs.h <&2; exit 1; } ;; esac -eval DESTDIR="$withval" +DESTDIR="$withval" case ".$DESTDIR" in # (vi ./) DESTDIR= @@ -999,7 +1005,7 @@ case "$host_os" in # Extract the first word of "xlc", so it can be a program name with args. set dummy xlc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1003: checking for $ac_word" >&5 +echo "configure:1009: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XLC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1049,7 +1055,7 @@ save_CFLAGS="$CFLAGS" # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1053: checking for $ac_word" >&5 +echo "configure:1059: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1079,7 +1085,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1083: checking for $ac_word" >&5 +echo "configure:1089: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1130,7 +1136,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1134: checking for $ac_word" >&5 +echo "configure:1140: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1162,7 +1168,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1166: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1172: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1173,12 +1179,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1177 "configure" +#line 1183 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1204,12 +1210,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1208: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1214: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1213: checking whether we are using GNU C" >&5 +echo "configure:1219: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1218,7 +1224,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1237,7 +1243,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1241: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1247: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1269,7 +1275,7 @@ else fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1273: checking how to run the C preprocessor" >&5 +echo "configure:1279: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1284,13 +1290,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1294: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1301,13 +1307,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1318,13 +1324,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1328: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1350,13 +1356,13 @@ echo "$ac_t""$CPP" 1>&6 if test $ac_cv_prog_gcc = yes; then echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 -echo "configure:1354: checking whether ${CC-cc} needs -traditional" >&5 +echo "configure:1360: checking whether ${CC-cc} needs -traditional" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_pattern="Autoconf.*'x'" cat > conftest.$ac_ext < Autoconf TIOCGETP @@ -1374,7 +1380,7 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat > conftest.$ac_ext < Autoconf TCGETA @@ -1396,7 +1402,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:1400: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1406: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1434,7 +1440,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1438: checking for a BSD compatible install" >&5 +echo "configure:1444: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1511,14 +1517,14 @@ EOF do rm -f y.tab.ch echo $ac_n "checking for $cf_prog""... $ac_c" 1>&6 -echo "configure:1515: checking for $cf_prog" >&5 +echo "configure:1521: checking for $cf_prog" >&5 cf_command="$cf_prog conftest.y" cf_result=no - if { (eval echo configure:1518: \"$cf_command\") 1>&5; (eval $cf_command) 2>&5; } && test -s y.tab.c ; then + if { (eval echo configure:1524: \"$cf_command\") 1>&5; (eval $cf_command) 2>&5; } && test -s y.tab.c ; then mv y.tab.c conftest.c rm -f y.tab.h if test "$cf_prog" = 'bison -y' ; then - if { (eval echo configure:1522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest ; then + if { (eval echo configure:1528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest ; then cf_result=yes fi else @@ -1542,7 +1548,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1546: checking for $ac_word" >&5 +echo "configure:1552: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LINT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1573,9 +1579,9 @@ done test -n "$LINT" || LINT=":" echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:1577: checking for AIX" >&5 +echo "configure:1583: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:1602: checking if $CC -U and -D options work together" >&5 +echo "configure:1608: checking if $CC -U and -D options work together" >&5 if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1606,7 +1612,7 @@ else cf_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1630: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_cc_u_d_options=yes @@ -1666,13 +1672,13 @@ irix[56].*) #(vi linux*|gnu*) #(vi echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6 -echo "configure:1670: checking if we must define _GNU_SOURCE" >&5 +echo "configure:1676: checking if we must define _GNU_SOURCE" >&5 if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -1682,7 +1688,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1692: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_gnu_source=no else @@ -1692,7 +1698,7 @@ else cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" cat > conftest.$ac_ext < int main() { @@ -1702,7 +1708,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_gnu_source=no else @@ -1746,13 +1752,13 @@ solaris*) #(vi ;; *) echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6 -echo "configure:1750: checking if we should define _XOPEN_SOURCE" >&5 +echo "configure:1756: checking if we should define _XOPEN_SOURCE" >&5 if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -1762,7 +1768,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_xopen_source=no else @@ -1772,7 +1778,7 @@ else cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" cat > conftest.$ac_ext < int main() { @@ -1782,7 +1788,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_xopen_source=no else @@ -1837,16 +1843,16 @@ cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAG echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6 -echo "configure:1841: checking if we should define _POSIX_C_SOURCE" >&5 +echo "configure:1847: checking if we should define _POSIX_C_SOURCE" >&5 if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 1847) testing if the symbol is already defined go no further ..." 1>&5 +echo "(line 1853) testing if the symbol is already defined go no further ..." 1>&5 cat > conftest.$ac_ext < int main() { @@ -1856,7 +1862,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1866: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_posix_c_source=no else @@ -1878,7 +1884,7 @@ else esac if test "$cf_want_posix_source" = yes ; then cat > conftest.$ac_ext < int main() { @@ -1888,7 +1894,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -1899,15 +1905,15 @@ fi rm -f conftest* fi -echo "(line 1903) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 +echo "(line 1909) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 CFLAGS="$cf_trim_CFLAGS" CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source" -echo "(line 1908) testing if the second compile does not leave our definition intact error ..." 1>&5 +echo "(line 1914) testing if the second compile does not leave our definition intact error ..." 1>&5 cat > conftest.$ac_ext < int main() { @@ -1917,7 +1923,7 @@ make an error #endif ; return 0; } EOF -if { (eval echo configure:1921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -1953,7 +1959,7 @@ esac echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 -echo "configure:1957: checking for strerror in -lcposix" >&5 +echo "configure:1963: checking for strerror in -lcposix" >&5 ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1961,7 +1967,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1996,7 +2002,7 @@ fi echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 -echo "configure:2000: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:2006: checking for ${CC-cc} option to accept ANSI C" >&5 if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2092,7 +2098,7 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ansi_cc="$cf_arg"; break else @@ -2216,12 +2222,12 @@ You have the following choices: fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:2220: checking for Cygwin environment" >&5 +echo "configure:2226: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2242: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -2249,19 +2255,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:2253: checking for mingw32 environment" >&5 +echo "configure:2259: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -2293,7 +2299,7 @@ esac echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:2297: checking for executable suffix" >&5 +echo "configure:2303: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2303,7 +2309,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:2307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:2313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -2324,13 +2330,13 @@ echo "$ac_t""${ac_cv_exeext}" 1>&6 ac_exeext=$EXEEXT echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:2328: checking for object suffix" >&5 +echo "configure:2334: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:2334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -2365,7 +2371,7 @@ LIB_PREFIX=$LIB_PREFIX echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:2369: checking whether ln -s works" >&5 +echo "configure:2375: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2409,7 +2415,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2413: checking for $ac_word" >&5 +echo "configure:2419: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2441,11 +2447,11 @@ done fi echo $ac_n "checking for native build C compiler""... $ac_c" 1>&6 -echo "configure:2445: checking for native build C compiler" >&5 +echo "configure:2451: checking for native build C compiler" >&5 echo "$ac_t""$BUILD_CC" 1>&6 echo $ac_n "checking for native build C preprocessor""... $ac_c" 1>&6 -echo "configure:2449: checking for native build C preprocessor" >&5 +echo "configure:2455: checking for native build C preprocessor" >&5 # Check whether --with-build-cpp or --without-build-cpp was given. if test "${with_build_cpp+set}" = set; then @@ -2458,7 +2464,7 @@ fi echo "$ac_t""$BUILD_CPP" 1>&6 echo $ac_n "checking for native build C flags""... $ac_c" 1>&6 -echo "configure:2462: checking for native build C flags" >&5 +echo "configure:2468: checking for native build C flags" >&5 # Check whether --with-build-cflags or --without-build-cflags was given. if test "${with_build_cflags+set}" = set; then @@ -2469,7 +2475,7 @@ fi echo "$ac_t""$BUILD_CFLAGS" 1>&6 echo $ac_n "checking for native build C preprocessor-flags""... $ac_c" 1>&6 -echo "configure:2473: checking for native build C preprocessor-flags" >&5 +echo "configure:2479: checking for native build C preprocessor-flags" >&5 # Check whether --with-build-cppflags or --without-build-cppflags was given. if test "${with_build_cppflags+set}" = set; then @@ -2480,7 +2486,7 @@ fi echo "$ac_t""$BUILD_CPPFLAGS" 1>&6 echo $ac_n "checking for native build linker-flags""... $ac_c" 1>&6 -echo "configure:2484: checking for native build linker-flags" >&5 +echo "configure:2490: checking for native build linker-flags" >&5 # Check whether --with-build-ldflags or --without-build-ldflags was given. if test "${with_build_ldflags+set}" = set; then @@ -2491,7 +2497,7 @@ fi echo "$ac_t""$BUILD_LDFLAGS" 1>&6 echo $ac_n "checking for native build linker-libraries""... $ac_c" 1>&6 -echo "configure:2495: checking for native build linker-libraries" >&5 +echo "configure:2501: checking for native build linker-libraries" >&5 # Check whether --with-build-libs or --without-build-libs was given. if test "${with_build_libs+set}" = set; then @@ -2534,7 +2540,7 @@ fi echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:2538: checking build system type" >&5 +echo "configure:2544: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -2560,7 +2566,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2564: checking for $ac_word" >&5 +echo "configure:2570: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2592,7 +2598,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2596: checking for $ac_word" >&5 +echo "configure:2602: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2627,7 +2633,7 @@ fi # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. set dummy ${ac_tool_prefix}ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2631: checking for $ac_word" >&5 +echo "configure:2637: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2659,7 +2665,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2663: checking for $ac_word" >&5 +echo "configure:2669: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2694,7 +2700,7 @@ fi # 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 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2698: checking for $ac_word" >&5 +echo "configure:2704: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2726,7 +2732,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2730: checking for $ac_word" >&5 +echo "configure:2736: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2763,14 +2769,19 @@ if eval "test \"`echo '$''{'cf_cv_subst_ else echo $ac_n "checking for archiver options (symbol AR_OPTS)""... $ac_c" 1>&6 -echo "configure:2767: checking for archiver options (symbol AR_OPTS)" >&5 -test -z "$AR_OPTS" && AR_OPTS=rv -echo "$ac_t""$AR_OPTS" 1>&6 +echo "configure:2773: checking for archiver options (symbol AR_OPTS)" >&5 + +if test -z "$AR_OPTS" ; then + AR_OPTS=rv + +fi + cf_cv_subst_AR_OPTS=$AR_OPTS +echo "$ac_t""$AR_OPTS" 1>&6 + fi -AR_OPTS=${cf_cv_subst_AR_OPTS} case "$host_cpu:$host_vendor:$host_os" in @@ -2809,7 +2820,7 @@ if test "${with_ispell+set}" = set; then *) # user supplied option-value for "--with-ispell=path" echo $ac_n "checking for ispell""... $ac_c" 1>&6 -echo "configure:2813: checking for ispell" >&5 +echo "configure:2824: checking for ispell" >&5 ac_cv_path_PATH_ISPELL="$withval" cat >> confdefs.h <&6 -echo "configure:2830: checking for $ac_word" >&5 +echo "configure:2841: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_ISPELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2883,7 +2894,7 @@ if test "${with_metamail+set}" = set; th *) # user supplied option-value for "--with-metamail=path" echo $ac_n "checking for metamail""... $ac_c" 1>&6 -echo "configure:2887: checking for metamail" >&5 +echo "configure:2898: checking for metamail" >&5 ac_cv_path_PATH_METAMAIL="$withval" cat >> confdefs.h <&6 -echo "configure:2904: checking for $ac_word" >&5 +echo "configure:2915: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_METAMAIL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2957,7 +2968,7 @@ if test "${with_sum+set}" = set; then *) # user supplied option-value for "--with-sum=path" echo $ac_n "checking for sum""... $ac_c" 1>&6 -echo "configure:2961: checking for sum" >&5 +echo "configure:2972: checking for sum" >&5 ac_cv_path_PATH_SUM="$withval" cat >> confdefs.h <&6 -echo "configure:2978: checking for $ac_word" >&5 +echo "configure:2989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_SUM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3021,12 +3032,12 @@ fi if test $ac_cv_path_PATH_SUM then echo $ac_n "checking if $ac_cv_path_PATH_SUM takes -r""... $ac_c" 1>&6 -echo "configure:3025: checking if $ac_cv_path_PATH_SUM takes -r" >&5 +echo "configure:3036: checking if $ac_cv_path_PATH_SUM takes -r" >&5 if eval "test \"`echo '$''{'ac_cv_prog_sum_r'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -if { ac_try='$ac_cv_path_PATH_SUM -r config.log 1>&5'; { (eval echo configure:3030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } +if { ac_try='$ac_cv_path_PATH_SUM -r config.log 1>&5'; { (eval echo configure:3041: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } then ac_cv_prog_sum_r=yes else @@ -3056,7 +3067,7 @@ fi echo $ac_n "checking for default editor""... $ac_c" 1>&6 -echo "configure:3060: checking for default editor" >&5 +echo "configure:3071: checking for default editor" >&5 # Check whether --with-editor or --without-editor was given. if test "${with_editor+set}" = set; then @@ -3084,7 +3095,7 @@ if test -z "$DEFAULT_EDITOR" ; then # Extract the first word of "vi", so it can be a program name with args. set dummy vi; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3088: checking for $ac_word" >&5 +echo "configure:3099: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_EDITOR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3129,7 +3140,7 @@ EOF # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3133: checking for $ac_word" >&5 +echo "configure:3144: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3183,7 +3194,7 @@ if test -z "$DEFAULT_MAILER" ; then # Extract the first word of "mailx", so it can be a program name with args. set dummy mailx; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3187: checking for $ac_word" >&5 +echo "configure:3198: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3220,7 +3231,7 @@ if test -z "$DEFAULT_MAILER" ; then # Extract the first word of "mail", so it can be a program name with args. set dummy mail; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3224: checking for $ac_word" >&5 +echo "configure:3235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3254,7 +3265,7 @@ fi fi echo $ac_n "checking for default mailer""... $ac_c" 1>&6 -echo "configure:3258: checking for default mailer" >&5 +echo "configure:3269: checking for default mailer" >&5 if test -n "$DEFAULT_MAILER" ; then case $cf_cv_system_name in #(vi @@ -3281,7 +3292,7 @@ echo "$ac_t""$DEFAULT_MAILER" 1>&6 echo $ac_n "checking for incoming-mail directory""... $ac_c" 1>&6 -echo "configure:3285: checking for incoming-mail directory" >&5 +echo "configure:3296: checking for incoming-mail directory" >&5 # Check whether --with-mailbox or --without-mailbox was given. if test "${with_mailbox+set}" = set; then @@ -3327,7 +3338,7 @@ echo "$ac_t""$DEFAULT_MAILBOX" 1>&6 ## PGP Support echo $ac_n "checking if you want PGP/GPG-Support""... $ac_c" 1>&6 -echo "configure:3331: checking if you want PGP/GPG-Support" >&5 +echo "configure:3342: checking if you want PGP/GPG-Support" >&5 # Check whether --enable-pgp-gpg or --disable-pgp-gpg was given. if test "${enable_pgp_gpg+set}" = set; then @@ -3359,7 +3370,7 @@ if test "${with_pgp+set}" = set; then *) # user supplied option-value for "--with-pgp=path" echo $ac_n "checking for pgp""... $ac_c" 1>&6 -echo "configure:3363: checking for pgp" >&5 +echo "configure:3374: checking for pgp" >&5 ac_cv_path_PATH_PGP="$withval" cat >> confdefs.h <&6 -echo "configure:3380: checking for $ac_word" >&5 +echo "configure:3391: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_PGP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3434,7 +3445,7 @@ if test "${with_pgpk+set}" = set; then *) # user supplied option-value for "--with-pgpk=path" echo $ac_n "checking for pgpk""... $ac_c" 1>&6 -echo "configure:3438: checking for pgpk" >&5 +echo "configure:3449: checking for pgpk" >&5 ac_cv_path_PATH_PGPK="$withval" cat >> confdefs.h <&6 -echo "configure:3455: checking for $ac_word" >&5 +echo "configure:3466: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_PGPK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3509,7 +3520,7 @@ if test "${with_gpg+set}" = set; then *) # user supplied option-value for "--with-gpg=path" echo $ac_n "checking for gpg""... $ac_c" 1>&6 -echo "configure:3513: checking for gpg" >&5 +echo "configure:3524: checking for gpg" >&5 ac_cv_path_PATH_GPG="$withval" cat >> confdefs.h <&6 -echo "configure:3530: checking for $ac_word" >&5 +echo "configure:3541: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PATH_GPG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3583,13 +3594,13 @@ fi echo $ac_n "checking for the default shell program""... $ac_c" 1>&6 -echo "configure:3587: checking for the default shell program" >&5 +echo "configure:3598: checking for the default shell program" >&5 cf_shell_progs="$cf_cv_default_shell" if test -z "$cf_shell_progs" ; then cf_shell_progs="sh ksh bash zsh pdksh mksh jsh keysh ash dash" # TIN preferred default shell for BSD systems is csh. Others are sh. cat > conftest.$ac_ext < @@ -3602,7 +3613,7 @@ make an error ; return 0; } EOF -if { (eval echo configure:3606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* $cf_shell_progs="csh tcsh $cf_shell_progs" else @@ -3612,11 +3623,11 @@ fi rm -f conftest* fi -echo "(line 3616) testing paths of shell programs: $cf_shell_progs ..." 1>&5 +echo "(line 3627) testing paths of shell programs: $cf_shell_progs ..." 1>&5 if test -s /etc/shells && test `egrep -c -v '^(#| | |$)' /etc/shells` -gt 0; then -echo "(line 3620) testing /etc/shells ..." 1>&5 +echo "(line 3631) testing /etc/shells ..." 1>&5 for cf_prog in $cf_shell_progs do @@ -3651,14 +3662,14 @@ echo "(line 3620) testing /etc/shells .. echo "$ac_t""$DEFAULT_SHELL" 1>&6 else -echo "(line 3655) testing $PATH ..." 1>&5 +echo "(line 3666) testing $PATH ..." 1>&5 for ac_prog in $cf_shell_progs do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3662: checking for $ac_word" >&5 +echo "configure:3673: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3711,7 +3722,7 @@ EOF ### check for this early, since it'll override several options echo $ac_n "checking if NNTP-support will be used""... $ac_c" 1>&6 -echo "configure:3715: checking if NNTP-support will be used" >&5 +echo "configure:3726: checking if NNTP-support will be used" >&5 # Check whether --enable-nntp or --disable-nntp was given. if test "${enable_nntp+set}" = set; then @@ -3733,7 +3744,7 @@ echo "$ac_t""$enableval" 1>&6 USE_SPOOLDIR=yes if test "$USE_NNTP" = "yes" ; then echo $ac_n "checking whether to be NNTP_ONLY""... $ac_c" 1>&6 -echo "configure:3737: checking whether to be NNTP_ONLY" >&5 +echo "configure:3748: checking whether to be NNTP_ONLY" >&5 # Check whether --enable-nntp-only or --disable-nntp-only was given. if test "${enable_nntp_only+set}" = set; then @@ -3765,7 +3776,7 @@ fi ### use option --enable-debug to compile-in test/development code echo $ac_n "checking if you want to compile-in debug support""... $ac_c" 1>&6 -echo "configure:3769: checking if you want to compile-in debug support" >&5 +echo "configure:3780: checking if you want to compile-in debug support" >&5 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then @@ -3792,7 +3803,7 @@ echo "$ac_t""$enableval" 1>&6 ### use option --disable-echo to suppress full display compiling commands echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6 -echo "configure:3796: checking if you want to see long compiling messages" >&5 +echo "configure:3807: checking if you want to see long compiling messages" >&5 # Check whether --enable-echo or --disable-echo was given. if test "${enable_echo+set}" = set; then @@ -3837,7 +3848,7 @@ echo "$ac_t""$enableval" 1>&6 ### use option --enable-prototypes to turn on optional prototypes echo $ac_n "checking if you want to compile with fallback prototypes""... $ac_c" 1>&6 -echo "configure:3841: checking if you want to compile with fallback prototypes" >&5 +echo "configure:3852: checking if you want to compile with fallback prototypes" >&5 # Check whether --enable-prototypes or --disable-prototypes was given. if test "${enable_prototypes+set}" = set; then @@ -3861,7 +3872,7 @@ EXTRA_CFLAGS="" if test -n "$GCC" then echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6 -echo "configure:3865: checking if you want to turn on gcc warnings" >&5 +echo "configure:3876: checking if you want to turn on gcc warnings" >&5 # Check whether --enable-warnings or --disable-warnings was given. if test "${enable_warnings+set}" = set; then @@ -3887,7 +3898,7 @@ then GCC_VERSION=none if test "$GCC" = yes ; then echo $ac_n "checking version of $CC""... $ac_c" 1>&6 -echo "configure:3891: checking version of $CC" >&5 +echo "configure:3902: checking version of $CC" >&5 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" test -z "$GCC_VERSION" && GCC_VERSION=unknown echo "$ac_t""$GCC_VERSION" 1>&6 @@ -3902,11 +3913,11 @@ if test "$GCC" = yes ; then case $host_os in linux*|gnu*) echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6 -echo "configure:3906: checking if this is really Intel C compiler" >&5 +echo "configure:3917: checking if this is really Intel C compiler" >&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -no-gcc" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* INTEL_COMPILER=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" @@ -3936,7 +3947,7 @@ fi cat > conftest.$ac_ext <&6 -echo "configure:3959: checking for $CC warning options" >&5 +echo "configure:3970: checking for $CC warning options" >&5 cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-Wall" for cf_opt in \ @@ -3971,7 +3982,7 @@ echo "configure:3959: checking for $CC w wd981 do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo configure:3975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:3986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" fi @@ -3981,7 +3992,7 @@ echo "configure:3959: checking for $CC w elif test "$GCC" = yes then echo "checking for $CC warning options" 1>&6 -echo "configure:3985: checking for $CC warning options" >&5 +echo "configure:3996: checking for $CC warning options" >&5 cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-W -Wall" cf_warn_CONST="" @@ -4000,7 +4011,7 @@ echo "configure:3985: checking for $CC w Wundef $cf_warn_CONST do CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo configure:4004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:4015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6 case $cf_opt in #(vi Wcast-qual) #(vi @@ -4031,7 +4042,7 @@ fi if test "$USE_SPOOLDIR" = "yes"; then ## options for directories echo $ac_n "checking for news-library path""... $ac_c" 1>&6 -echo "configure:4035: checking for news-library path" >&5 +echo "configure:4046: checking for news-library path" >&5 # Check whether --with-libdir or --without-libdir was given. if test "${with_libdir+set}" = set; then @@ -4041,6 +4052,12 @@ else withval="${NEWSLIBDIR-/usr/lib/news}" fi +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -4052,24 +4069,24 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } ;; esac -eval NEWSLIBDIR="$withval" +NEWSLIBDIR="$withval" echo "$ac_t""$NEWSLIBDIR" 1>&6 echo $ac_n "checking for news spool-directory path""... $ac_c" 1>&6 -echo "configure:4073: checking for news spool-directory path" >&5 +echo "configure:4090: checking for news spool-directory path" >&5 # Check whether --with-spooldir or --without-spooldir was given. if test "${with_spooldir+set}" = set; then @@ -4079,6 +4096,12 @@ else withval="${SPOOLDIR-/var/spool/news}" fi +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -4090,24 +4113,24 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } ;; esac -eval SPOOLDIR="$withval" +SPOOLDIR="$withval" echo "$ac_t""$SPOOLDIR" 1>&6 echo $ac_n "checking for news overview-directory path""... $ac_c" 1>&6 -echo "configure:4111: checking for news overview-directory path" >&5 +echo "configure:4134: checking for news overview-directory path" >&5 # Check whether --with-nov-dir or --without-nov-dir was given. if test "${with_nov_dir+set}" = set; then @@ -4117,6 +4140,12 @@ else withval="${NOVROOTDIR-$SPOOLDIR}" fi +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -4128,24 +4157,24 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } ;; esac -eval NOVROOTDIR="$withval" +NOVROOTDIR="$withval" echo "$ac_t""$NOVROOTDIR" 1>&6 echo $ac_n "checking for overview filename""... $ac_c" 1>&6 -echo "configure:4149: checking for overview filename" >&5 +echo "configure:4178: checking for overview filename" >&5 # Check whether --with-nov-fname or --without-nov-fname was given. if test "${with_nov_fname+set}" = set; then @@ -4181,7 +4210,7 @@ fi ## TODO: kick the --with-inews-dir= stuff, the check below should be enough ## (requires some code rework in tin) echo $ac_n "checking for directory containing \"inews\"""... $ac_c" 1>&6 -echo "configure:4185: checking for directory containing \"inews\"" >&5 +echo "configure:4214: checking for directory containing \"inews\"" >&5 # Check whether --with-inews-dir or --without-inews-dir was given. if test "${with_inews_dir+set}" = set; then @@ -4191,6 +4220,12 @@ else withval="${INEWSDIR-$INEWSPATH}" fi +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -4202,19 +4237,19 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } ;; esac -eval INEWSDIR="$withval" +INEWSDIR="$withval" INEWSDIR=`echo $INEWSDIR |sed -e 's,/$,,'` echo "$ac_t""$INEWSDIR" 1>&6 @@ -4222,7 +4257,7 @@ echo "$ac_t""$INEWSDIR" 1>&6 # Extract the first word of "inews", so it can be a program name with args. set dummy inews; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4226: checking for $ac_word" >&5 +echo "configure:4261: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_INEWS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4279,7 +4314,7 @@ fi if test "$USE_SPOOLDIR" = "yes"; then ## options for libraries echo $ac_n "checking for optional INN-NNTP library""... $ac_c" 1>&6 -echo "configure:4283: checking for optional INN-NNTP library" >&5 +echo "configure:4318: checking for optional INN-NNTP library" >&5 # Check whether --with-inn-nntplib or --without-inn-nntplib was given. if test "${with_inn_nntplib+set}" = set; then @@ -4311,7 +4346,7 @@ fi ### Look for network libraries first, since some functions (such as gethostname) ### are used in a lot of places. echo $ac_n "checking if you want socks library""... $ac_c" 1>&6 -echo "configure:4315: checking if you want socks library" >&5 +echo "configure:4350: checking if you want socks library" >&5 if eval "test \"`echo '$''{'cf_cv_use_libsocks'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4331,7 +4366,7 @@ fi echo "$ac_t""$cf_cv_use_libsocks" 1>&6 echo $ac_n "checking if you want socks5 library""... $ac_c" 1>&6 -echo "configure:4335: checking if you want socks5 library" >&5 +echo "configure:4370: checking if you want socks5 library" >&5 if eval "test \"`echo '$''{'cf_cv_use_libsocks5'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4407,7 +4442,7 @@ cat >> confdefs.h <<\EOF EOF cat > conftest.$ac_ext < @@ -4416,7 +4451,7 @@ int main() { accept((char *)0) ; return 0; } EOF -if { (eval echo configure:4420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 @@ -4430,7 +4465,7 @@ else cf_test_netlibs=no echo $ac_n "checking for network libraries""... $ac_c" 1>&6 -echo "configure:4434: checking for network libraries" >&5 +echo "configure:4469: checking for network libraries" >&5 if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4441,12 +4476,12 @@ cf_test_netlibs=yes for ac_func in gethostname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4445: checking for $ac_func" >&5 +echo "configure:4480: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4492,7 +4527,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6 -echo "configure:4496: checking for gethostname in -lnsl" >&5 +echo "configure:4531: checking for gethostname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4500,7 +4535,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4544,7 +4579,7 @@ else echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6 -echo "configure:4548: checking for gethostname in -lsocket" >&5 +echo "configure:4583: checking for gethostname in -lsocket" >&5 ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4552,7 +4587,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4608,7 +4643,7 @@ done # I don't know the entrypoints - 97/7/22 TD # AC_HAVE_LIBRARY(inet,cf_cv_netlibs="-linet $cf_cv_netlibs") echo $ac_n "checking for main in -linet""... $ac_c" 1>&6 -echo "configure:4612: checking for main in -linet" >&5 +echo "configure:4647: checking for main in -linet" >&5 ac_lib_var=`echo inet'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4616,14 +4651,14 @@ else ac_save_LIBS="$LIBS" LIBS="-linet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4648,12 +4683,12 @@ if test "$ac_cv_func_lsocket" != no ; th for ac_func in socket do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4652: checking for $ac_func" >&5 +echo "configure:4687: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4699,7 +4734,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:4703: checking for socket in -lsocket" >&5 +echo "configure:4738: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4707,7 +4742,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4751,7 +4786,7 @@ else echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6 -echo "configure:4755: checking for socket in -lbsd" >&5 +echo "configure:4790: checking for socket in -lbsd" >&5 ac_lib_var=`echo bsd'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4759,7 +4794,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbsd $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4815,12 +4850,12 @@ fi for ac_func in gethostbyname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4819: checking for $ac_func" >&5 +echo "configure:4854: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4866,7 +4901,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:4870: checking for gethostbyname in -lnsl" >&5 +echo "configure:4905: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4874,7 +4909,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4926,12 +4961,12 @@ done for ac_func in strcasecmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4930: checking for $ac_func" >&5 +echo "configure:4965: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4977,7 +5012,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6 -echo "configure:4981: checking for strcasecmp in -lresolv" >&5 +echo "configure:5016: checking for strcasecmp in -lresolv" >&5 ac_lib_var=`echo resolv'_'strcasecmp | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4985,7 +5020,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $cf_cv_netlibs $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5068,10 +5103,10 @@ cat >> confdefs.h <<\EOF EOF echo $ac_n "checking if the socks library uses socks4 prefix""... $ac_c" 1>&6 -echo "configure:5072: checking if the socks library uses socks4 prefix" >&5 +echo "configure:5107: checking if the socks library uses socks4 prefix" >&5 cf_use_socks4=error cat > conftest.$ac_ext < @@ -5080,7 +5115,7 @@ int main() { Rinit((char *)0) ; return 0; } EOF -if { (eval echo configure:5084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define USE_SOCKS4_PREFIX 1 @@ -5092,14 +5127,14 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < int main() { SOCKSinit((char *)0) ; return 0; } EOF -if { (eval echo configure:5103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_use_socks4=no else @@ -5164,9 +5199,9 @@ EOF fi echo $ac_n "checking if socks5p.h is available""... $ac_c" 1>&6 -echo "configure:5168: checking if socks5p.h is available" >&5 +echo "configure:5203: checking if socks5p.h is available" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5215: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_use_socks5p_h=yes else @@ -5202,17 +5237,17 @@ for ac_hdr in unistd.h fcntl.h sys/file. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5206: checking for $ac_hdr" >&5 +echo "configure:5241: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5239,12 +5274,12 @@ fi done echo $ac_n "checking for fcntl""... $ac_c" 1>&6 -echo "configure:5243: checking for fcntl" >&5 +echo "configure:5278: checking for fcntl" >&5 if eval "test \"`echo '$''{'ac_cv_func_fcntl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_fcntl=yes" else @@ -5287,12 +5322,12 @@ else fi echo $ac_n "checking for lockf""... $ac_c" 1>&6 -echo "configure:5291: checking for lockf" >&5 +echo "configure:5326: checking for lockf" >&5 if eval "test \"`echo '$''{'ac_cv_func_lockf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_lockf=yes" else @@ -5335,12 +5370,12 @@ else fi echo $ac_n "checking for flock""... $ac_c" 1>&6 -echo "configure:5339: checking for flock" >&5 +echo "configure:5374: checking for flock" >&5 if eval "test \"`echo '$''{'ac_cv_func_flock'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_flock=yes" else @@ -5384,7 +5419,7 @@ fi echo $ac_n "checking for file-locking functions""... $ac_c" 1>&6 -echo "configure:5388: checking for file-locking functions" >&5 +echo "configure:5423: checking for file-locking functions" >&5 if eval "test \"`echo '$''{'cf_cv_lockfile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5396,7 +5431,7 @@ if eval 'test ${ac_cv_func_'$cf_lock'+se case $cf_lock in #(vi fcntl) #(vi cat > conftest.$ac_ext < @@ -5424,7 +5459,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -5436,7 +5471,7 @@ rm -f conftest* ;; lockf) #(vi cat > conftest.$ac_ext < @@ -5456,7 +5491,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -5468,7 +5503,7 @@ rm -f conftest* ;; flock) cat > conftest.$ac_ext < @@ -5491,7 +5526,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -5512,7 +5547,7 @@ echo "$ac_t""$cf_cv_lockfile" 1>&6 echo $ac_n "checking which locking method should be used""... $ac_c" 1>&6 -echo "configure:5516: checking which locking method should be used" >&5 +echo "configure:5551: checking which locking method should be used" >&5 ### fcntl() is preferred, if the user just disables fcntl() ### without specifying an alternative lockf() is preferred @@ -5581,7 +5616,7 @@ fi echo $ac_n "checking for screen type""... $ac_c" 1>&6 -echo "configure:5585: checking for screen type" >&5 +echo "configure:5620: checking for screen type" >&5 # Check whether --with-screen or --without-screen was given. if test "${with_screen+set}" = set; then @@ -5597,13 +5632,19 @@ use_curses=no use_ncurses=no echo $ac_n "checking if you specified curses install-directory""... $ac_c" 1>&6 -echo "configure:5601: checking if you specified curses install-directory" >&5 +echo "configure:5636: checking if you specified curses install-directory" >&5 # Check whether --with-curses-dir or --without-curses-dir was given. if test "${with_curses_dir+set}" = set; then withval="$with_curses_dir" +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -5615,12 +5656,12 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } @@ -5654,7 +5695,7 @@ pdcurses) #(vi ;; none) echo $ac_n "checking if you want to use ncurses library""... $ac_c" 1>&6 -echo "configure:5658: checking if you want to use ncurses library" >&5 +echo "configure:5699: checking if you want to use ncurses library" >&5 # Check whether --with-ncurses or --without-ncurses was given. if test "${with_ncurses+set}" = set; then @@ -5667,7 +5708,7 @@ fi echo "$ac_t""$use_ncurses" 1>&6 echo $ac_n "checking if you want curses rather than termcap interface""... $ac_c" 1>&6 -echo "configure:5671: checking if you want curses rather than termcap interface" >&5 +echo "configure:5712: checking if you want curses rather than termcap interface" >&5 # Check whether --enable-curses or --disable-curses was given. if test "${enable_curses+set}" = set; then @@ -5704,7 +5745,7 @@ test "$cf_cv_curses_dir" != "no" && \ CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS" echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6 -echo "configure:5708: checking for $cf_ncuhdr_root header in include-path" >&5 +echo "configure:5749: checking for $cf_ncuhdr_root header in include-path" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5715,7 +5756,7 @@ else do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h=$cf_header @@ -5755,11 +5796,14 @@ fi echo "$ac_t""$cf_cv_ncurses_h" 1>&6 + + if test "$cf_cv_ncurses_h" != no ; then cf_cv_ncurses_header=$cf_cv_ncurses_h else + echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6 -echo "configure:5763: checking for $cf_ncuhdr_root include-path" >&5 +echo "configure:5807: checking for $cf_ncuhdr_root include-path" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5854,14 +5898,14 @@ do cf_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat > conftest.$ac_ext < int main() { printf("Hello") ; return 0; } EOF -if { (eval echo configure:5865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -5888,7 +5932,7 @@ done do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h2=$cf_header @@ -5956,14 +6000,14 @@ do cf_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat > conftest.$ac_ext < int main() { printf("Hello") ; return 0; } EOF -if { (eval echo configure:5967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -5987,10 +6031,7 @@ done fi -cat >> confdefs.h <<\EOF -#define NCURSES 1 -EOF - +# Set definitions to allow ifdef'ing for ncurses.h case $cf_cv_ncurses_header in # (vi *ncurses.h) @@ -6017,8 +6058,91 @@ EOF esac + +echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 +echo "configure:6064: checking for terminfo header" >&5 +if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +case ${cf_cv_ncurses_header} in #(vi +*/ncurses.h|*/ncursesw.h) #(vi + cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` + ;; +*) + cf_term_header=term.h + ;; +esac + +for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +do +cat > conftest.$ac_ext < +#include <${cf_cv_ncurses_header-curses.h}> +#include <$cf_test> + +int main() { +int x = auto_left_margin +; return 0; } +EOF +if { (eval echo configure:6091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + + cf_cv_term_header="$cf_test" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + + cf_cv_term_header=unknown + +fi +rm -f conftest* + test "$cf_cv_term_header" != unknown && break +done + +fi + +echo "$ac_t""$cf_cv_term_header" 1>&6 + +# Set definitions to allow ifdef'ing to accommodate subdirectories + +case $cf_cv_term_header in # (vi +*term.h) + cat >> confdefs.h <<\EOF +#define HAVE_TERM_H 1 +EOF + + ;; +esac + +case $cf_cv_term_header in # (vi +ncurses/term.h) #(vi + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_TERM_H 1 +EOF + + ;; +ncursesw/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_TERM_H 1 +EOF + + ;; +esac + + +# some applications need this, but should check for NCURSES_VERSION +cat >> confdefs.h <<\EOF +#define NCURSES 1 +EOF + + + echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:6022: checking for ncurses version" >&5 +echo "configure:6146: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6044,7 +6168,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:6048: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:6172: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -6053,7 +6177,7 @@ EOF else cat > conftest.$ac_ext < @@ -6077,7 +6201,7 @@ int main() exit(0); } EOF -if { (eval echo configure:6081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -6108,7 +6232,7 @@ cf_nculib_root=ncurses cf_ncurses_LIBS="" cf_ncurses_SAVE="$LIBS" echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:6112: checking for Gpm_Open in -lgpm" >&5 +echo "configure:6236: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6116,7 +6240,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6143,7 +6267,7 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6 -echo "configure:6147: checking for initscr in -lgpm" >&5 +echo "configure:6271: checking for initscr in -lgpm" >&5 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6151,7 +6275,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6194,7 +6318,7 @@ freebsd*) # version of ncurses (but it should do no harm, since it's static). if test "$cf_nculib_root" = ncurses ; then echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:6198: checking for tgoto in -lmytinfo" >&5 +echo "configure:6322: checking for tgoto in -lmytinfo" >&5 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6202,7 +6326,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6247,12 +6371,12 @@ else eval 'cf_cv_have_lib_'$cf_nculib_root'=no' cf_libdir="" echo $ac_n "checking for initscr""... $ac_c" 1>&6 -echo "configure:6251: checking for initscr" >&5 +echo "configure:6375: checking for initscr" >&5 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -6295,17 +6419,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6 -echo "configure:6299: checking for initscr in -l$cf_nculib_root" >&5 +echo "configure:6423: checking for initscr in -l$cf_nculib_root" >&5 LIBS="-l$cf_nculib_root $LIBS" cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:6309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' @@ -6374,17 +6498,17 @@ test -d /usr && { for cf_libdir in $cf_search do echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6 -echo "configure:6378: checking for -l$cf_nculib_root in $cf_libdir" >&5 +echo "configure:6502: checking for -l$cf_nculib_root in $cf_libdir" >&5 LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:6388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' @@ -6415,7 +6539,7 @@ fi if test -n "$cf_ncurses_LIBS" ; then echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6 -echo "configure:6419: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 +echo "configure:6543: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 cf_ncurses_SAVE="$LIBS" for p in $cf_ncurses_LIBS ; do q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"` @@ -6424,14 +6548,14 @@ echo "configure:6419: checking if we can fi done cat > conftest.$ac_ext < int main() { initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:6435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -6458,9 +6582,9 @@ EOF for cf_hdr in stdlib.h wchar.h wctype.h do echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6 -echo "configure:6462: checking for $cf_hdr" >&5 +echo "configure:6586: checking for $cf_hdr" >&5 cat > conftest.$ac_ext < @@ -6468,7 +6592,7 @@ echo "configure:6462: checking for $cf_h EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6495,12 +6619,12 @@ done echo $ac_n "checking for wide char and multibyte support""... $ac_c" 1>&6 -echo "configure:6499: checking for wide char and multibyte support" >&5 +echo "configure:6623: checking for wide char and multibyte support" >&5 if eval "test \"`echo '$''{'am_cv_multibyte_able'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifdef HAVE_STDLIB_H @@ -6536,7 +6660,7 @@ char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0 wcsncat(wcb2, wcb, 5); ; return 0; } EOF -if { (eval echo configure:6540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_multibyte_able=yes else @@ -6546,7 +6670,7 @@ else cf_save_LIBS="$LIBS" LIBS="-lutf8 $LIBS" cat > conftest.$ac_ext < int main() { @@ -6572,7 +6696,7 @@ char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0 wcsncat(wcb2, wcb, 5); ; return 0; } EOF -if { (eval echo configure:6576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_multibyte_able=libutf8 else @@ -6613,7 +6737,7 @@ test "$cf_cv_curses_dir" != "no" && \ CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS" echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6 -echo "configure:6617: checking for $cf_ncuhdr_root header in include-path" >&5 +echo "configure:6741: checking for $cf_ncuhdr_root header in include-path" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6624,7 +6748,7 @@ else do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h=$cf_header @@ -6672,11 +6796,14 @@ fi echo "$ac_t""$cf_cv_ncurses_h" 1>&6 + + if test "$cf_cv_ncurses_h" != no ; then cf_cv_ncurses_header=$cf_cv_ncurses_h else + echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6 -echo "configure:6680: checking for $cf_ncuhdr_root include-path" >&5 +echo "configure:6807: checking for $cf_ncuhdr_root include-path" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6771,14 +6898,14 @@ do cf_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat > conftest.$ac_ext < int main() { printf("Hello") ; return 0; } EOF -if { (eval echo configure:6782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -6805,23 +6932,15 @@ done do cat > conftest.$ac_ext < int main() { #ifdef NCURSES_VERSION -#ifndef WACS_BSSB - make an error -#endif - printf("%s\n", NCURSES_VERSION); #else #ifdef __NCURSES_H @@ -6834,7 +6953,7 @@ printf("old\n"); ; return 0; } EOF -if { (eval echo configure:6838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h2=$cf_header @@ -6881,14 +7000,14 @@ do cf_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" cat > conftest.$ac_ext < int main() { printf("Hello") ; return 0; } EOF -if { (eval echo configure:6892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -6912,10 +7031,7 @@ done fi -cat >> confdefs.h <<\EOF -#define NCURSES 1 -EOF - +# Set definitions to allow ifdef'ing for ncurses.h case $cf_cv_ncurses_header in # (vi *ncurses.h) @@ -6942,8 +7058,91 @@ EOF esac + +echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 +echo "configure:7064: checking for terminfo header" >&5 +if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +case ${cf_cv_ncurses_header} in #(vi +*/ncurses.h|*/ncursesw.h) #(vi + cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` + ;; +*) + cf_term_header=term.h + ;; +esac + +for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +do +cat > conftest.$ac_ext < +#include <${cf_cv_ncurses_header-curses.h}> +#include <$cf_test> + +int main() { +int x = auto_left_margin +; return 0; } +EOF +if { (eval echo configure:7091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + + cf_cv_term_header="$cf_test" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + + cf_cv_term_header=unknown + +fi +rm -f conftest* + test "$cf_cv_term_header" != unknown && break +done + +fi + +echo "$ac_t""$cf_cv_term_header" 1>&6 + +# Set definitions to allow ifdef'ing to accommodate subdirectories + +case $cf_cv_term_header in # (vi +*term.h) + cat >> confdefs.h <<\EOF +#define HAVE_TERM_H 1 +EOF + + ;; +esac + +case $cf_cv_term_header in # (vi +ncurses/term.h) #(vi + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_TERM_H 1 +EOF + + ;; +ncursesw/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_TERM_H 1 +EOF + + ;; +esac + + +# some applications need this, but should check for NCURSES_VERSION +cat >> confdefs.h <<\EOF +#define NCURSES 1 +EOF + + + echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:6947: checking for ncurses version" >&5 +echo "configure:7146: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6969,7 +7168,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:6973: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:7172: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -6978,7 +7177,7 @@ EOF else cat > conftest.$ac_ext < @@ -7002,7 +7201,7 @@ int main() exit(0); } EOF -if { (eval echo configure:7006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -7033,7 +7232,7 @@ cf_nculib_root=ncursesw cf_ncurses_LIBS="" cf_ncurses_SAVE="$LIBS" echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:7037: checking for Gpm_Open in -lgpm" >&5 +echo "configure:7236: checking for Gpm_Open in -lgpm" >&5 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7041,7 +7240,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7068,7 +7267,7 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6 -echo "configure:7072: checking for initscr in -lgpm" >&5 +echo "configure:7271: checking for initscr in -lgpm" >&5 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7076,7 +7275,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7119,7 +7318,7 @@ freebsd*) # version of ncurses (but it should do no harm, since it's static). if test "$cf_nculib_root" = ncurses ; then echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:7123: checking for tgoto in -lmytinfo" >&5 +echo "configure:7322: checking for tgoto in -lmytinfo" >&5 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7127,7 +7326,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7172,12 +7371,12 @@ else eval 'cf_cv_have_lib_'$cf_nculib_root'=no' cf_libdir="" echo $ac_n "checking for initscr""... $ac_c" 1>&6 -echo "configure:7176: checking for initscr" >&5 +echo "configure:7375: checking for initscr" >&5 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_initscr=yes" else @@ -7220,17 +7419,17 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6 -echo "configure:7224: checking for initscr in -l$cf_nculib_root" >&5 +echo "configure:7423: checking for initscr in -l$cf_nculib_root" >&5 LIBS="-l$cf_nculib_root $LIBS" cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:7234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' @@ -7299,17 +7498,17 @@ test -d /usr && { for cf_libdir in $cf_search do echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6 -echo "configure:7303: checking for -l$cf_nculib_root in $cf_libdir" >&5 +echo "configure:7502: checking for -l$cf_nculib_root in $cf_libdir" >&5 LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:7313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' @@ -7340,7 +7539,7 @@ fi if test -n "$cf_ncurses_LIBS" ; then echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6 -echo "configure:7344: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 +echo "configure:7543: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 cf_ncurses_SAVE="$LIBS" for p in $cf_ncurses_LIBS ; do q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"` @@ -7349,14 +7548,14 @@ echo "configure:7344: checking if we can fi done cat > conftest.$ac_ext < int main() { initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:7360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -7379,7 +7578,7 @@ EOF echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:7383: checking for ncurses version" >&5 +echo "configure:7582: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7405,7 +7604,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:7409: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:7608: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -7414,7 +7613,7 @@ EOF else cat > conftest.$ac_ext < @@ -7438,7 +7637,7 @@ int main() exit(0); } EOF -if { (eval echo configure:7442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -7461,13 +7660,13 @@ EOF echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6 -echo "configure:7465: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 +echo "configure:7664: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -7479,7 +7678,7 @@ int main() { getbegyx(stdscr, y1, x1) ; return 0; } EOF -if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_need_xopen_extension=no else @@ -7487,7 +7686,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_need_xopen_extension=yes else @@ -7523,14 +7722,14 @@ test $cf_cv_need_xopen_extension = yes & echo $ac_n "checking for extra include directories""... $ac_c" 1>&6 -echo "configure:7527: checking for extra include directories" >&5 +echo "configure:7726: checking for extra include directories" >&5 if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cf_cv_curses_incdir=no case $host_os in #(vi -hpux10.*|hpux11.*) #(vi +hpux10.*) #(vi test -d /usr/include/curses_colr && \ cf_cv_curses_incdir="-I/usr/include/curses_colr" ;; @@ -7546,8 +7745,9 @@ fi echo "$ac_t""$cf_cv_curses_incdir" 1>&6 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS" + echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6 -echo "configure:7551: checking if we have identified curses headers" >&5 +echo "configure:7751: checking if we have identified curses headers" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7560,14 +7760,14 @@ for cf_header in \ ncurses/ncurses.h do cat > conftest.$ac_ext < int main() { initscr(); tgoto("?", 0,0) ; return 0; } EOF -if { (eval echo configure:7571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_header=$cf_header; break else @@ -7590,17 +7790,17 @@ for ac_hdr in $cf_cv_ncurses_header do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:7594: checking for $ac_hdr" >&5 +echo "configure:7794: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7804: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7628,19 +7828,94 @@ done +echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 +echo "configure:7833: checking for terminfo header" >&5 +if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +case ${cf_cv_ncurses_header} in #(vi +*/ncurses.h|*/ncursesw.h) #(vi + cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` + ;; +*) + cf_term_header=term.h + ;; +esac + +for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +do +cat > conftest.$ac_ext < +#include <${cf_cv_ncurses_header-curses.h}> +#include <$cf_test> + +int main() { +int x = auto_left_margin +; return 0; } +EOF +if { (eval echo configure:7860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + + cf_cv_term_header="$cf_test" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + + cf_cv_term_header=unknown + +fi +rm -f conftest* + test "$cf_cv_term_header" != unknown && break +done + +fi + +echo "$ac_t""$cf_cv_term_header" 1>&6 + +# Set definitions to allow ifdef'ing to accommodate subdirectories + +case $cf_cv_term_header in # (vi +*term.h) + cat >> confdefs.h <<\EOF +#define HAVE_TERM_H 1 +EOF + + ;; +esac + +case $cf_cv_term_header in # (vi +ncurses/term.h) #(vi + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_TERM_H 1 +EOF + + ;; +ncursesw/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_TERM_H 1 +EOF + + ;; +esac + + echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6 -echo "configure:7635: checking if we have identified curses libraries" >&5 +echo "configure:7910: checking if we have identified curses libraries" >&5 cat > conftest.$ac_ext < int main() { initscr(); tgoto("?", 0,0) ; return 0; } EOF -if { (eval echo configure:7644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -7656,7 +7931,7 @@ if test "$cf_result" = no ; then case $host_os in #(vi freebsd*) #(vi echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6 -echo "configure:7660: checking for tgoto in -lmytinfo" >&5 +echo "configure:7935: checking for tgoto in -lmytinfo" >&5 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7664,7 +7939,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7696,9 +7971,9 @@ else fi ;; -hpux10.*|hpux11.*) #(vi +hpux10.*) #(vi echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6 -echo "configure:7702: checking for initscr in -lcur_colr" >&5 +echo "configure:7977: checking for initscr in -lcur_colr" >&5 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7706,7 +7981,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcur_colr $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7740,7 +8015,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6 -echo "configure:7744: checking for initscr in -lHcurses" >&5 +echo "configure:8019: checking for initscr in -lHcurses" >&5 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7748,7 +8023,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lHcurses $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7812,12 +8087,12 @@ if test ".$ac_cv_func_initscr" != .yes ; # Check for library containing tgoto. Do this before curses library # because it may be needed to link the test-case for initscr. echo $ac_n "checking for tgoto""... $ac_c" 1>&6 -echo "configure:7816: checking for tgoto" >&5 +echo "configure:8091: checking for tgoto" >&5 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_tgoto=yes" else @@ -7861,7 +8136,7 @@ else for cf_term_lib in $cf_check_list termcap termlib unknown do echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6 -echo "configure:7865: checking for tgoto in -l$cf_term_lib" >&5 +echo "configure:8140: checking for tgoto in -l$cf_term_lib" >&5 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7869,7 +8144,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$cf_term_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7910,7 +8185,7 @@ fi for cf_curs_lib in $cf_check_list xcurses jcurses unknown do echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6 -echo "configure:7914: checking for initscr in -l$cf_curs_lib" >&5 +echo "configure:8189: checking for initscr in -l$cf_curs_lib" >&5 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7918,7 +8193,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$cf_curs_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7955,16 +8230,16 @@ fi LIBS="-l$cf_curs_lib $cf_save_LIBS" if test "$cf_term_lib" = unknown ; then echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6 -echo "configure:7959: checking if we can link with $cf_curs_lib library" >&5 +echo "configure:8234: checking if we can link with $cf_curs_lib library" >&5 cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:7968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -7980,16 +8255,16 @@ rm -f conftest* : elif test "$cf_term_lib" != predefined ; then echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6 -echo "configure:7984: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 +echo "configure:8259: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 cat > conftest.$ac_ext < int main() { initscr(); tgoto((char *)0, 0, 0); ; return 0; } EOF -if { (eval echo configure:7993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=no else @@ -7999,14 +8274,14 @@ else LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" cat > conftest.$ac_ext < int main() { initscr() ; return 0; } EOF -if { (eval echo configure:8010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -8027,7 +8302,7 @@ fi echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:8031: checking for ncurses version" >&5 +echo "configure:8306: checking for ncurses version" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8053,7 +8328,7 @@ Autoconf "old" #endif EOF cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo configure:8057: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } + { (eval echo configure:8332: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; } if test -f conftest.out ; then cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'` test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" @@ -8062,7 +8337,7 @@ EOF else cat > conftest.$ac_ext < @@ -8086,7 +8361,7 @@ int main() exit(0); } EOF -if { (eval echo configure:8090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_ncurses_version=`cat $cf_tempfile` @@ -8109,13 +8384,13 @@ EOF echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6 -echo "configure:8113: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 +echo "configure:8388: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -8127,7 +8402,7 @@ int main() { getbegyx(stdscr, y1, x1) ; return 0; } EOF -if { (eval echo configure:8131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_need_xopen_extension=no else @@ -8135,7 +8410,7 @@ else cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_need_xopen_extension=yes else @@ -8171,7 +8446,7 @@ fi ## substitute externally-installed PCRE library for our bundled version echo $ac_n "checking if you want to use installed version of pcre""... $ac_c" 1>&6 -echo "configure:8175: checking if you want to use installed version of pcre" >&5 +echo "configure:8450: checking if you want to use installed version of pcre" >&5 # Check whether --with-pcre or --without-pcre was given. if test "${with_pcre+set}" = set; then @@ -8198,6 +8473,12 @@ case .$cf_pcre_home in #(vi ;; .*) +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$cf_pcre_home" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -8209,12 +8490,12 @@ case ".$cf_pcre_home" in #(vi eval cf_pcre_home="$cf_pcre_home" case ".$cf_pcre_home" in #(vi .NONE/*) - cf_pcre_home=`echo $cf_pcre_home | sed -e s%NONE%$ac_default_prefix%` + cf_pcre_home=`echo $cf_pcre_home | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - cf_pcre_home=`echo $cf_pcre_home | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + cf_pcre_home=`echo $cf_pcre_home | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$cf_pcre_home\"" 1>&2; exit 1; } @@ -8240,7 +8521,7 @@ fi debug_malloc=none echo $ac_n "checking if you want to link with dbmalloc for testing""... $ac_c" 1>&6 -echo "configure:8244: checking if you want to link with dbmalloc for testing" >&5 +echo "configure:8525: checking if you want to link with dbmalloc for testing" >&5 # Check whether --with-dbmalloc or --without-dbmalloc was given. if test "${with_dbmalloc+set}" = set; then @@ -8254,17 +8535,17 @@ echo "$ac_t""$with_dbmalloc" 1>&6 if test "$with_dbmalloc" = yes ; then ac_safe=`echo "dbmalloc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dbmalloc.h""... $ac_c" 1>&6 -echo "configure:8258: checking for dbmalloc.h" >&5 +echo "configure:8539: checking for dbmalloc.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8268: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8281,7 +8562,7 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for debug_malloc in -ldbmalloc""... $ac_c" 1>&6 -echo "configure:8285: checking for debug_malloc in -ldbmalloc" >&5 +echo "configure:8566: checking for debug_malloc in -ldbmalloc" >&5 ac_lib_var=`echo dbmalloc'_'debug_malloc | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8289,7 +8570,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldbmalloc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8328,7 +8609,7 @@ fi echo $ac_n "checking if you want to link with dmalloc for testing""... $ac_c" 1>&6 -echo "configure:8332: checking if you want to link with dmalloc for testing" >&5 +echo "configure:8613: checking if you want to link with dmalloc for testing" >&5 # Check whether --with-dmalloc or --without-dmalloc was given. if test "${with_dmalloc+set}" = set; then @@ -8342,17 +8623,17 @@ echo "$ac_t""$with_dmalloc" 1>&6 if test "$with_dmalloc" = yes ; then ac_safe=`echo "dmalloc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dmalloc.h""... $ac_c" 1>&6 -echo "configure:8346: checking for dmalloc.h" >&5 +echo "configure:8627: checking for dmalloc.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8356: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8369,7 +8650,7 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dmalloc_debug in -ldmalloc""... $ac_c" 1>&6 -echo "configure:8373: checking for dmalloc_debug in -ldmalloc" >&5 +echo "configure:8654: checking for dmalloc_debug in -ldmalloc" >&5 ac_lib_var=`echo dmalloc'_'dmalloc_debug | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8377,7 +8658,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldmalloc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8416,7 +8697,7 @@ fi echo $ac_n "checking if you want debugging-trace""... $ac_c" 1>&6 -echo "configure:8420: checking if you want debugging-trace" >&5 +echo "configure:8701: checking if you want debugging-trace" >&5 # Check whether --with-trace or --without-trace was given. if test "${with_trace+set}" = set; then @@ -8434,12 +8715,12 @@ EOF EXTRAOBJS="$EXTRAOBJS trace.o" echo $ac_n "checking for _tracef""... $ac_c" 1>&6 -echo "configure:8438: checking for _tracef" >&5 +echo "configure:8719: checking for _tracef" >&5 if eval "test \"`echo '$''{'ac_cv_func__tracef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__tracef=yes" else @@ -8484,7 +8765,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for _tracef in -l${cf_with_screen}_g""... $ac_c" 1>&6 -echo "configure:8488: checking for _tracef in -l${cf_with_screen}_g" >&5 +echo "configure:8769: checking for _tracef in -l${cf_with_screen}_g" >&5 ac_lib_var=`echo ${cf_with_screen}_g'_'_tracef | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8492,7 +8773,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l${cf_with_screen}_g $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8535,7 +8816,7 @@ fi ## options for miscellaneous definitions echo $ac_n "checking for domain-name""... $ac_c" 1>&6 -echo "configure:8539: checking for domain-name" >&5 +echo "configure:8820: checking for domain-name" >&5 # Check whether --with-domain-name or --without-domain-name was given. if test "${with_domain_name+set}" = set; then @@ -8564,7 +8845,7 @@ echo "$ac_t""$DOMAIN_NAME" 1>&6 if test "$USE_NNTP" = "yes" ; then echo $ac_n "checking for NNTP default-server""... $ac_c" 1>&6 -echo "configure:8568: checking for NNTP default-server" >&5 +echo "configure:8849: checking for NNTP default-server" >&5 # Check whether --with-nntp-default-server or --without-nntp-default-server was given. if test "${with_nntp_default_server+set}" = set; then @@ -8630,7 +8911,7 @@ EOF ## optional features echo $ac_n "checking whether to use MH style mail handling for mailgroups""... $ac_c" 1>&6 -echo "configure:8634: checking whether to use MH style mail handling for mailgroups" >&5 +echo "configure:8915: checking whether to use MH style mail handling for mailgroups" >&5 # Check whether --enable-mh-mail-handling or --disable-mh-mail-handling was given. if test "${enable_mh_mail_handling+set}" = set; then @@ -8649,7 +8930,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable 8-bit keycodes""... $ac_c" 1>&6 -echo "configure:8653: checking whether to enable 8-bit keycodes" >&5 +echo "configure:8934: checking whether to enable 8-bit keycodes" >&5 # Check whether --enable-8bit-keys or --disable-8bit-keys was given. if test "${enable_8bit_keys+set}" = set; then @@ -8675,7 +8956,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable ANSI-color""... $ac_c" 1>&6 -echo "configure:8679: checking whether to enable ANSI-color" >&5 +echo "configure:8960: checking whether to enable ANSI-color" >&5 # Check whether --enable-color or --disable-color was given. if test "${enable_color+set}" = set; then @@ -8692,7 +8973,7 @@ use_color=$enableval echo "$ac_t""$use_color" 1>&6 echo $ac_n "checking whether to enable posting-etiquette""... $ac_c" 1>&6 -echo "configure:8696: checking whether to enable posting-etiquette" >&5 +echo "configure:8977: checking whether to enable posting-etiquette" >&5 # Check whether --enable-etiquette or --disable-etiquette was given. if test "${enable_etiquette+set}" = set; then @@ -8711,7 +8992,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to strictly observe RFC2047 and break long lines""... $ac_c" 1>&6 -echo "configure:8715: checking whether to strictly observe RFC2047 and break long lines" >&5 +echo "configure:8996: checking whether to strictly observe RFC2047 and break long lines" >&5 # Check whether --enable-break-long-lines or --disable-break-long-lines was given. if test "${enable_break_long_lines+set}" = set; then @@ -8730,7 +9011,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to force MM_CHARSET obeyance when decoding mime""... $ac_c" 1>&6 -echo "configure:8734: checking whether to force MM_CHARSET obeyance when decoding mime" >&5 +echo "configure:9015: checking whether to force MM_CHARSET obeyance when decoding mime" >&5 # Check whether --enable-mime-strict-charset or --disable-mime-strict-charset was given. if test "${enable_mime_strict_charset+set}" = set; then @@ -8756,7 +9037,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking for MIME character-set""... $ac_c" 1>&6 -echo "configure:8760: checking for MIME character-set" >&5 +echo "configure:9041: checking for MIME character-set" >&5 # Check whether --with-mime-default-charset or --without-mime-default-charset was given. if test "${with_mime_default_charset+set}" = set; then @@ -8778,7 +9059,7 @@ EOF echo "$ac_t""$MM_CHARSET" 1>&6 echo $ac_n "checking for default ISO/ASCII table""... $ac_c" 1>&6 -echo "configure:8782: checking for default ISO/ASCII table" >&5 +echo "configure:9063: checking for default ISO/ASCII table" >&5 # Check whether --with-iso-to-ascii or --without-iso-to-ascii was given. if test "${with_iso_to_ascii+set}" = set; then @@ -8800,7 +9081,7 @@ EOF echo "$ac_t""$DEFAULT_ISO2ASC" 1>&6 echo $ac_n "checking whether to enable locale support""... $ac_c" 1>&6 -echo "configure:8804: checking whether to enable locale support" >&5 +echo "configure:9085: checking whether to enable locale support" >&5 # Check whether --enable-locale or --disable-locale was given. if test "${enable_locale+set}" = set; then @@ -8819,7 +9100,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable posting""... $ac_c" 1>&6 -echo "configure:8823: checking whether to enable posting" >&5 +echo "configure:9104: checking whether to enable posting" >&5 # Check whether --enable-posting or --disable-posting was given. if test "${enable_posting+set}" = set; then @@ -8838,7 +9119,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable shell escape""... $ac_c" 1>&6 -echo "configure:8842: checking whether to enable shell escape" >&5 +echo "configure:9123: checking whether to enable shell escape" >&5 # Check whether --enable-shell-escape or --disable-shell-escape was given. if test "${enable_shell_escape+set}" = set; then @@ -8857,7 +9138,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to have fascist newsadmin""... $ac_c" 1>&6 -echo "configure:8861: checking whether to have fascist newsadmin" >&5 +echo "configure:9142: checking whether to have fascist newsadmin" >&5 # Check whether --enable-fascist-newsadmin or --disable-fascist-newsadmin was given. if test "${enable_fascist_newsadmin+set}" = set; then @@ -8876,7 +9157,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable inverse video and highlighting""... $ac_c" 1>&6 -echo "configure:8880: checking whether to enable inverse video and highlighting" >&5 +echo "configure:9161: checking whether to enable inverse video and highlighting" >&5 # Check whether --enable-inverse-video or --disable-inverse-video was given. if test "${enable_inverse_video+set}" = set; then @@ -8895,7 +9176,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable piping support""... $ac_c" 1>&6 -echo "configure:8899: checking whether to enable piping support" >&5 +echo "configure:9180: checking whether to enable piping support" >&5 # Check whether --enable-piping or --disable-piping was given. if test "${enable_piping+set}" = set; then @@ -8914,7 +9195,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to enable printer support""... $ac_c" 1>&6 -echo "configure:8918: checking whether to enable printer support" >&5 +echo "configure:9199: checking whether to enable printer support" >&5 # Check whether --enable-printing or --disable-printing was given. if test "${enable_printing+set}" = set; then @@ -8933,7 +9214,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to unique tmp-files by appending .pid""... $ac_c" 1>&6 -echo "configure:8937: checking whether to unique tmp-files by appending .pid" >&5 +echo "configure:9218: checking whether to unique tmp-files by appending .pid" >&5 # Check whether --enable-append-pid or --disable-append-pid was given. if test "${enable_append_pid+set}" = set; then @@ -8959,7 +9240,7 @@ fi echo "$ac_t""$enableval" 1>&6 echo $ac_n "checking whether to fallback to XHDR XREF if XOVER isn't supported""... $ac_c" 1>&6 -echo "configure:8963: checking whether to fallback to XHDR XREF if XOVER isn't supported" >&5 +echo "configure:9244: checking whether to fallback to XHDR XREF if XOVER isn't supported" >&5 # Check whether --enable-xhdr-xref or --disable-xhdr-xref was given. if test "${enable_xhdr_xref+set}" = set; then @@ -8986,7 +9267,7 @@ echo "$ac_t""$enableval" 1>&6 ### bypass a bug in old versions of leafnode & NNTPcache echo $ac_n "checking whether to send a GROUP command before a LISTGROUP""... $ac_c" 1>&6 -echo "configure:8990: checking whether to send a GROUP command before a LISTGROUP" >&5 +echo "configure:9271: checking whether to send a GROUP command before a LISTGROUP" >&5 # Check whether --enable-broken-listgroup-fix or --disable-broken-listgroup-fix was given. if test "${enable_broken_listgroup_fix+set}" = set; then @@ -9006,7 +9287,7 @@ echo "$ac_t""$enableval" 1>&6 ### on some old systems the WIFEXITED()/WEXITSTATUS() macros do not work echo $ac_n "checking whether to ignore system()s return value""... $ac_c" 1>&6 -echo "configure:9010: checking whether to ignore system()s return value" >&5 +echo "configure:9291: checking whether to ignore system()s return value" >&5 # Check whether --enable-broken-system-fix or --disable-broken-system-fix was given. if test "${enable_broken_system_fix+set}" = set; then @@ -9026,7 +9307,7 @@ echo "$ac_t""$enableval" 1>&6 ### checks for the location of the system-wide default setting file echo $ac_n "checking for directory containing tin.defaults file""... $ac_c" 1>&6 -echo "configure:9030: checking for directory containing tin.defaults file" >&5 +echo "configure:9311: checking for directory containing tin.defaults file" >&5 # Check whether --with-defaults-dir or --without-defaults-dir was given. if test "${with_defaults_dir+set}" = set; then @@ -9036,6 +9317,12 @@ else withval="${TIN_DEFAULTS_DIR-/etc/tin}" fi +if test "x$prefix" != xNONE; then + cf_path_syntax="$prefix" +else + cf_path_syntax="$ac_default_prefix" +fi + case ".$withval" in #(vi .\$\(*\)*|.\'*\'*) #(vi ;; @@ -9047,19 +9334,19 @@ case ".$withval" in #(vi eval withval="$withval" case ".$withval" in #(vi .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; esac ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` +.no|.NONE/*) + withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%` ;; *) { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; } ;; esac -eval TIN_DEFAULTS_DIR="$withval" +TIN_DEFAULTS_DIR="$withval" echo "$ac_t""$TIN_DEFAULTS_DIR" 1>&6 cat >> confdefs.h <&6 -echo "configure:9073: checking whether to enable IPv6" >&5 +echo "configure:9360: checking whether to enable IPv6" >&5 # Check whether --enable-ipv6 or --disable-ipv6 was given. if test "${enable_ipv6+set}" = set; then @@ -9090,7 +9377,7 @@ if test "$enableval" = "yes"; then echo $ac_n "checking ipv6 stack type""... $ac_c" 1>&6 -echo "configure:9094: checking ipv6 stack type" >&5 +echo "configure:9381: checking ipv6 stack type" >&5 if eval "test \"`echo '$''{'cf_cv_ipv6type'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9110,7 +9397,7 @@ do ;; inria) #(vi cat > conftest.$ac_ext < @@ -9128,7 +9415,7 @@ rm -f conftest* ;; kame) #(vi cat > conftest.$ac_ext < @@ -9146,7 +9433,7 @@ rm -f conftest* ;; linux-glibc) #(vi cat > conftest.$ac_ext < @@ -9173,7 +9460,7 @@ rm -f conftest* ;; toshiba) #(vi cat > conftest.$ac_ext < @@ -9191,7 +9478,7 @@ rm -f conftest* ;; v6d) #(vi cat > conftest.$ac_ext < @@ -9209,7 +9496,7 @@ rm -f conftest* ;; zeta) cat > conftest.$ac_ext < @@ -9242,7 +9529,7 @@ cf_ipv6lib=none cf_ipv6dir=none echo $ac_n "checking for IPv6 library if required""... $ac_c" 1>&6 -echo "configure:9246: checking for IPv6 library if required" >&5 +echo "configure:9533: checking for IPv6 library if required" >&5 case $cf_cv_ipv6type in #(vi solaris) #(vi ;; @@ -9276,7 +9563,7 @@ echo "$ac_t""$cf_ipv6lib" 1>&6 if test "$cf_ipv6lib" != "none"; then cat > conftest.$ac_ext < @@ -9287,7 +9574,7 @@ int main() { getaddrinfo(0, 0, 0, 0) ; return 0; } EOF -if { (eval echo configure:9291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 @@ -9384,12 +9671,12 @@ rm -f conftest* eval 'cf_cv_have_lib_'$cf_ipv6lib'=no' cf_libdir="" echo $ac_n "checking for getaddrinfo""... $ac_c" 1>&6 -echo "configure:9388: checking for getaddrinfo" >&5 +echo "configure:9675: checking for getaddrinfo" >&5 if eval "test \"`echo '$''{'ac_cv_func_getaddrinfo'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getaddrinfo=yes" else @@ -9432,10 +9719,10 @@ else cf_save_LIBS="$LIBS" echo $ac_n "checking for getaddrinfo in -l$cf_ipv6lib""... $ac_c" 1>&6 -echo "configure:9436: checking for getaddrinfo in -l$cf_ipv6lib" >&5 +echo "configure:9723: checking for getaddrinfo in -l$cf_ipv6lib" >&5 LIBS="-l$cf_ipv6lib $LIBS" cat > conftest.$ac_ext < @@ -9446,7 +9733,7 @@ int main() { getaddrinfo(0, 0, 0, 0) ; return 0; } EOF -if { (eval echo configure:9450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes' @@ -9515,10 +9802,10 @@ test -d /usr && { for cf_libdir in $cf_search do echo $ac_n "checking for -l$cf_ipv6lib in $cf_libdir""... $ac_c" 1>&6 -echo "configure:9519: checking for -l$cf_ipv6lib in $cf_libdir" >&5 +echo "configure:9806: checking for -l$cf_ipv6lib in $cf_libdir" >&5 LIBS="-L$cf_libdir -l$cf_ipv6lib $cf_save_LIBS" cat > conftest.$ac_ext < @@ -9529,7 +9816,7 @@ int main() { getaddrinfo(0, 0, 0, 0) ; return 0; } EOF -if { (eval echo configure:9533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes' @@ -9562,7 +9849,7 @@ fi echo $ac_n "checking working getaddrinfo""... $ac_c" 1>&6 -echo "configure:9566: checking working getaddrinfo" >&5 +echo "configure:9853: checking working getaddrinfo" >&5 if eval "test \"`echo '$''{'cf_cv_getaddrinfo'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9571,7 +9858,7 @@ if test "$cross_compiling" = yes; then cf_cv_getaddrinfo=unknown else cat > conftest.$ac_ext < @@ -9650,7 +9937,7 @@ int main() } EOF -if { (eval echo configure:9654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_getaddrinfo=yes else @@ -9694,12 +9981,12 @@ fi for ac_func in getaddrinfo getnameinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9698: checking for $ac_func" >&5 +echo "configure:9985: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9751,7 +10038,7 @@ done ### checks for operator characteristics (should be the last option) echo $ac_n "checking whether to make a coffee while compiling""... $ac_c" 1>&6 -echo "configure:9755: checking whether to make a coffee while compiling" >&5 +echo "configure:10042: checking whether to make a coffee while compiling" >&5 # Check whether --with-coffee or --without-coffee was given. if test "${with_coffee+set}" = set; then @@ -9776,7 +10063,7 @@ fi ### checks for compiler characteristics echo $ac_n "checking for makeflags variable""... $ac_c" 1>&6 -echo "configure:9780: checking for makeflags variable" >&5 +echo "configure:10067: checking for makeflags variable" >&5 if eval "test \"`echo '$''{'cf_cv_makeflags'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9801,7 +10088,8 @@ CF_EOF esac break ;; - *) echo no match "$cf_result" + .-) ;; + *) echo "given option \"$cf_option\", no match \"$cf_result\"" ;; esac done @@ -9821,12 +10109,12 @@ ac_link='${CC-cc} -o conftest${ac_exeext cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:9825: checking for working const" >&5 +echo "configure:10113: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10167: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -9896,21 +10184,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:9900: checking for inline" >&5 +echo "configure:10188: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10202: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -9937,13 +10225,13 @@ esac echo $ac_n "checking for ansi token expansion/substitution""... $ac_c" 1>&6 -echo "configure:9941: checking for ansi token expansion/substitution" >&5 +echo "configure:10229: checking for ansi token expansion/substitution" >&5 if eval "test \"`echo '$''{'cf_cv_cpp_expands'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10243: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_cpp_expands=yes else @@ -9972,13 +10260,13 @@ EOF echo $ac_n "checking for ansi token concatenation""... $ac_c" 1>&6 -echo "configure:9976: checking for ansi token concatenation" >&5 +echo "configure:10264: checking for ansi token concatenation" >&5 if eval "test \"`echo '$''{'cf_cv_cpp_concats'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_cpp_concats=yes else @@ -10007,20 +10295,20 @@ EOF echo $ac_n "checking if nested parameters work""... $ac_c" 1>&6 -echo "configure:10011: checking if nested parameters work" >&5 +echo "configure:10299: checking if nested parameters work" >&5 if eval "test \"`echo '$''{'cf_cv_nested_params'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10312: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_nested_params=yes else @@ -10043,12 +10331,12 @@ EOF ### Checks for header files. echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:10047: checking for ANSI C header files" >&5 +echo "configure:10335: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10056,7 +10344,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10073,7 +10361,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -10091,7 +10379,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -10112,7 +10400,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -10123,7 +10411,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:10127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -10151,12 +10439,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:10155: checking for $ac_hdr that defines DIR" >&5 +echo "configure:10443: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -10164,7 +10452,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:10168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -10189,7 +10477,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:10193: checking for opendir in -ldir" >&5 +echo "configure:10481: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10197,7 +10485,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10230,7 +10518,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:10234: checking for opendir in -lx" >&5 +echo "configure:10522: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10238,7 +10526,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10272,12 +10560,12 @@ fi fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:10276: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:10564: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10286,7 +10574,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:10290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -10307,12 +10595,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:10311: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:10599: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -10328,7 +10616,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:10332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -10407,9 +10695,9 @@ for cf_hdr in \ do echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6 -echo "configure:10411: checking for $cf_hdr" >&5 +echo "configure:10699: checking for $cf_hdr" >&5 cat > conftest.$ac_ext < @@ -10417,7 +10705,7 @@ echo "configure:10411: checking for $cf_ EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10453,17 +10741,17 @@ unistd.h \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10457: checking for $ac_hdr" >&5 +echo "configure:10745: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10755: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10494,17 +10782,17 @@ if test "$ISC" = yes ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10498: checking for $ac_hdr" >&5 +echo "configure:10786: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10539,16 +10827,16 @@ if test "$ac_cv_header_termios_h" = yes esac if test "$termios_bad" = maybe ; then echo $ac_n "checking whether termios.h needs _POSIX_SOURCE""... $ac_c" 1>&6 -echo "configure:10543: checking whether termios.h needs _POSIX_SOURCE" >&5 +echo "configure:10831: checking whether termios.h needs _POSIX_SOURCE" >&5 cat > conftest.$ac_ext < int main() { struct termios foo; int x = foo.c_iflag ; return 0; } EOF -if { (eval echo configure:10552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* termios_bad=no else @@ -10557,7 +10845,7 @@ else rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* termios_bad=unknown else @@ -10589,7 +10877,7 @@ fi echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6 -echo "configure:10593: checking declaration of size-change" >&5 +echo "configure:10881: checking declaration of size-change" >&5 if eval "test \"`echo '$''{'cf_cv_sizechange'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10603,7 +10891,7 @@ do CPPFLAGS="$cf_save_CPPFLAGS" test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" cat > conftest.$ac_ext < #ifdef HAVE_TERMIOS_H @@ -10642,7 +10930,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:10646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sizechange=yes else @@ -10681,7 +10969,7 @@ fi echo $ac_n "checking if sys/time.h conflicts with sys/select.h""... $ac_c" 1>&6 -echo "configure:10685: checking if sys/time.h conflicts with sys/select.h" >&5 +echo "configure:10973: checking if sys/time.h conflicts with sys/select.h" >&5 if eval "test \"`echo '$''{'cf_cv_sys_select_timeval'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10689,7 +10977,7 @@ else for cf_opts in no yes do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sys_select_timeval=$cf_opts break @@ -10741,12 +11029,12 @@ EOF ### Checks for Datatypes. echo $ac_n "checking for gid_t""... $ac_c" 1>&6 -echo "configure:10745: checking for gid_t" >&5 +echo "configure:11033: checking for gid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_gid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10774,12 +11062,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:10778: checking for mode_t" >&5 +echo "configure:11066: checking for mode_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10807,12 +11095,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:10811: checking for off_t" >&5 +echo "configure:11099: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10840,12 +11128,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:10844: checking for pid_t" >&5 +echo "configure:11132: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10873,12 +11161,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:10877: checking for size_t" >&5 +echo "configure:11165: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10906,12 +11194,12 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:10910: checking for ssize_t" >&5 +echo "configure:11198: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10939,12 +11227,12 @@ EOF fi echo $ac_n "checking for time_t""... $ac_c" 1>&6 -echo "configure:10943: checking for time_t" >&5 +echo "configure:11231: checking for time_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_time_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -10972,7 +11260,7 @@ EOF fi cat > conftest.$ac_ext < EOF @@ -10983,7 +11271,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < EOF @@ -10994,12 +11282,12 @@ else rm -rf conftest* echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 -echo "configure:10998: checking for in_addr_t" >&5 +echo "configure:11286: checking for in_addr_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_in_addr_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11035,12 +11323,12 @@ fi rm -f conftest* echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:11039: checking for uid_t in sys/types.h" >&5 +echo "configure:11327: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -11070,9 +11358,9 @@ fi echo $ac_n "checking for quad_t""... $ac_c" 1>&6 -echo "configure:11074: checking for quad_t" >&5 +echo "configure:11362: checking for quad_t" >&5 cat > conftest.$ac_ext < @@ -11085,7 +11373,7 @@ int main() { quad_t x; x = 0 ; return 0; } EOF -if { (eval echo configure:11089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_quad_t=yes else @@ -11104,9 +11392,9 @@ EOF fi echo $ac_n "checking for long long""... $ac_c" 1>&6 -echo "configure:11108: checking for long long" >&5 +echo "configure:11396: checking for long long" >&5 cat > conftest.$ac_ext < @@ -11115,7 +11403,7 @@ int main() { long long x; x = 0 ; return 0; } EOF -if { (eval echo configure:11119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_long_long=yes else @@ -11134,9 +11422,9 @@ EOF fi echo $ac_n "checking for nl_item""... $ac_c" 1>&6 -echo "configure:11138: checking for nl_item" >&5 +echo "configure:11426: checking for nl_item" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_nl_item=yes else @@ -11173,7 +11461,7 @@ fi # libuu/uudeview # only define HAVE_LIBUU and HAVE_UUDEVIEW_H if both are found echo $ac_n "checking for UUInitialize in -luu""... $ac_c" 1>&6 -echo "configure:11177: checking for UUInitialize in -luu" >&5 +echo "configure:11465: checking for UUInitialize in -luu" >&5 ac_lib_var=`echo uu'_'UUInitialize | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11181,7 +11469,7 @@ else ac_save_LIBS="$LIBS" LIBS="-luu $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11209,17 +11497,17 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l echo "$ac_t""yes" 1>&6 ac_safe=`echo "uudeview.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for uudeview.h""... $ac_c" 1>&6 -echo "configure:11213: checking for uudeview.h" >&5 +echo "configure:11501: checking for uudeview.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11511: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11257,7 +11545,7 @@ fi # libidn - Internationalized Domain Names echo $ac_n "checking for stringprep_check_version in -lidn""... $ac_c" 1>&6 -echo "configure:11261: checking for stringprep_check_version in -lidn" >&5 +echo "configure:11549: checking for stringprep_check_version in -lidn" >&5 ac_lib_var=`echo idn'_'stringprep_check_version | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11265,7 +11553,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lidn $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11293,17 +11581,17 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l echo "$ac_t""yes" 1>&6 ac_safe=`echo "stringprep.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for stringprep.h""... $ac_c" 1>&6 -echo "configure:11297: checking for stringprep.h" >&5 +echo "configure:11585: checking for stringprep.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11326,17 +11614,17 @@ EOF ac_safe=`echo "idna.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for idna.h""... $ac_c" 1>&6 -echo "configure:11330: checking for idna.h" >&5 +echo "configure:11618: checking for idna.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11628: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11358,7 +11646,7 @@ if eval "test \"`echo '$ac_cv_header_'$a EOF echo $ac_n "checking for idna_to_unicode_lzlz in -lidn""... $ac_c" 1>&6 -echo "configure:11362: checking for idna_to_unicode_lzlz in -lidn" >&5 +echo "configure:11650: checking for idna_to_unicode_lzlz in -lidn" >&5 ac_lib_var=`echo idn'_'idna_to_unicode_lzlz | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11366,7 +11654,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lidn $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11398,9 +11686,9 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l EOF echo $ac_n "checking for IDNA_USE_STD3_ASCII_RULES""... $ac_c" 1>&6 -echo "configure:11402: checking for IDNA_USE_STD3_ASCII_RULES" >&5 +echo "configure:11690: checking for IDNA_USE_STD3_ASCII_RULES" >&5 cat > conftest.$ac_ext < EOF @@ -11449,17 +11737,17 @@ fi # ICU - International Components for Unicode ac_safe=`echo "unicode/unorm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for unicode/unorm.h""... $ac_c" 1>&6 -echo "configure:11453: checking for unicode/unorm.h" >&5 +echo "configure:11741: checking for unicode/unorm.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11478,17 +11766,17 @@ if eval "test \"`echo '$ac_cv_header_'$a ac_safe=`echo "unicode/ustring.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for unicode/ustring.h""... $ac_c" 1>&6 -echo "configure:11482: checking for unicode/ustring.h" >&5 +echo "configure:11770: checking for unicode/ustring.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11514,12 +11802,12 @@ EOF EOF echo $ac_n "checking for unorm_normalize in libicuuc""... $ac_c" 1>&6 -echo "configure:11518: checking for unorm_normalize in libicuuc" >&5 +echo "configure:11806: checking for unorm_normalize in libicuuc" >&5 cf_save_LIBS="$LIBS" cf_try_icuuc="no" LIBS="$LIBS -licuuc" cat > conftest.$ac_ext < int main() { @@ -11529,7 +11817,7 @@ int main() { needed = unorm_normalize(ustr, -1, UNORM_DEFAULT, 0, NULL, 0, &status); ; return 0; } EOF -if { (eval echo configure:11533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF @@ -11548,17 +11836,17 @@ rm -f conftest* echo "$ac_t""$cf_try_icuuc" 1>&6 ac_safe=`echo "unicode/ubidi.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for unicode/ubidi.h""... $ac_c" 1>&6 -echo "configure:11552: checking for unicode/ubidi.h" >&5 +echo "configure:11840: checking for unicode/ubidi.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11605,24 +11893,24 @@ else cf_cv_termlib=none cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_termlib=terminfo else @@ -11651,16 +11939,16 @@ if test "$cf_cv_termlib" = none; then for cf_func in tigetstr tgetstr do echo $ac_n "checking for $cf_func in -l$cf_lib""... $ac_c" 1>&6 -echo "configure:11655: checking for $cf_func in -l$cf_lib" >&5 +echo "configure:11943: checking for $cf_func in -l$cf_lib" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -11687,7 +11975,7 @@ fi if test "$cf_cv_termlib" = none; then # allow curses library for broken AIX system. echo $ac_n "checking for initscr in -lcurses""... $ac_c" 1>&6 -echo "configure:11691: checking for initscr in -lcurses" >&5 +echo "configure:11979: checking for initscr in -lcurses" >&5 ac_lib_var=`echo curses'_'initscr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11695,7 +11983,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcurses $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11727,7 +12015,7 @@ else fi echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:11731: checking for tgoto in -ltermcap" >&5 +echo "configure:12019: checking for tgoto in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11735,7 +12023,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11779,11 +12067,11 @@ fi # terminfo-based termcap interfaces may be prototyped in , # which may/may not be compatible with echo $ac_n "checking if we should include termcap.h""... $ac_c" 1>&6 -echo "configure:11783: checking if we should include termcap.h" >&5 +echo "configure:12071: checking if we should include termcap.h" >&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -I$srcdir/include" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_result=yes else @@ -11814,7 +12102,7 @@ EOF echo $ac_n "checking for term.h""... $ac_c" 1>&6 -echo "configure:11818: checking for term.h" >&5 +echo "configure:12106: checking for term.h" >&5 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11827,7 +12115,7 @@ for cf_header in \ term.h do cat > conftest.$ac_ext < @@ -11836,7 +12124,7 @@ int main() { WINDOW *x ; return 0; } EOF -if { (eval echo configure:11840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_term_header=$cf_header break @@ -11877,7 +12165,7 @@ esac echo $ac_n "checking if we should include curses.h or termcap.h""... $ac_c" 1>&6 -echo "configure:11881: checking if we should include curses.h or termcap.h" >&5 +echo "configure:12169: checking if we should include curses.h or termcap.h" >&5 if eval "test \"`echo '$''{'cf_cv_need_curses_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -11895,7 +12183,7 @@ do test -n "$cf_t_opts" && CPPFLAGS="$CPPFLAGS -D$cf_t_opts" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* test "$cf_cv_need_curses_h" = no && { cf_cv_need_curses_h=maybe @@ -11916,7 +12204,7 @@ else rm -rf conftest* echo "Recompiling with corrected call (C:$cf_c_opts, T:$cf_t_opts)" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_need_curses_h=yes cf_ok_c_opts=$cf_c_opts @@ -12000,7 +12288,7 @@ esac echo $ac_n "checking declaration of tputs 3rd param""... $ac_c" 1>&6 -echo "configure:12004: checking declaration of tputs 3rd param" >&5 +echo "configure:12292: checking declaration of tputs 3rd param" >&5 if eval "test \"`echo '$''{'cf_cv_type_outchar'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12016,10 +12304,10 @@ for Q in int void; do for R in int char; do for S in "" const; do -echo "(line 12020) testing loop variables P:$P, Q:$Q, R:$R, S:$S ..." 1>&5 +echo "(line 12308) testing loop variables P:$P, Q:$Q, R:$R, S:$S ..." 1>&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_type_outchar="$Q OutChar($R)" cf_cv_found=yes @@ -12083,14 +12371,14 @@ EOF elif test ".$cf_cv_termlib" = .termcap ; then # BSD 'tputs()' may need 'PC' to be set. cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_EXTERN_TCAP_PC 1 @@ -12109,13 +12397,13 @@ fi echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6 -echo "configure:12113: checking if external errno is declared" >&5 +echo "configure:12401: checking if external errno is declared" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_dcl_errno=yes else @@ -12156,13 +12444,13 @@ fi # It's possible (for near-UNIX clones) that the data doesn't exist echo $ac_n "checking if external errno exists""... $ac_c" 1>&6 -echo "configure:12160: checking if external errno exists" >&5 +echo "configure:12448: checking if external errno exists" >&5 if eval "test \"`echo '$''{'cf_cv_have_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_have_errno=yes else @@ -12204,12 +12492,12 @@ fi for ac_func in strerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12208: checking for $ac_func" >&5 +echo "configure:12496: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12259,13 +12547,13 @@ else echo $ac_n "checking if external sys_nerr is declared""... $ac_c" 1>&6 -echo "configure:12263: checking if external sys_nerr is declared" >&5 +echo "configure:12551: checking if external sys_nerr is declared" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_sys_nerr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_dcl_sys_nerr=yes else @@ -12306,13 +12594,13 @@ fi # It's possible (for near-UNIX clones) that the data doesn't exist echo $ac_n "checking if external sys_nerr exists""... $ac_c" 1>&6 -echo "configure:12310: checking if external sys_nerr exists" >&5 +echo "configure:12598: checking if external sys_nerr exists" >&5 if eval "test \"`echo '$''{'cf_cv_have_sys_nerr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_have_sys_nerr=yes else @@ -12351,13 +12639,13 @@ fi echo $ac_n "checking if external sys_errlist is declared""... $ac_c" 1>&6 -echo "configure:12355: checking if external sys_errlist is declared" >&5 +echo "configure:12643: checking if external sys_errlist is declared" >&5 if eval "test \"`echo '$''{'cf_cv_dcl_sys_errlist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_dcl_sys_errlist=yes else @@ -12398,13 +12686,13 @@ fi # It's possible (for near-UNIX clones) that the data doesn't exist echo $ac_n "checking if external sys_errlist exists""... $ac_c" 1>&6 -echo "configure:12402: checking if external sys_errlist exists" >&5 +echo "configure:12690: checking if external sys_errlist exists" >&5 if eval "test \"`echo '$''{'cf_cv_have_sys_errlist'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_have_sys_errlist=yes else @@ -12510,12 +12798,12 @@ for ac_func in \ $cf_tc_funcs do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12514: checking for $ac_func" >&5 +echo "configure:12802: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12564,12 +12852,12 @@ done echo $ac_n "checking for flock""... $ac_c" 1>&6 -echo "configure:12568: checking for flock" >&5 +echo "configure:12856: checking for flock" >&5 if eval "test \"`echo '$''{'ac_cv_func_flock'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_flock=yes" else @@ -12614,7 +12902,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for flock in -lbsd""... $ac_c" 1>&6 -echo "configure:12618: checking for flock in -lbsd" >&5 +echo "configure:12906: checking for flock in -lbsd" >&5 ac_lib_var=`echo bsd'_'flock | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12622,7 +12910,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbsd $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12662,12 +12950,12 @@ fi echo $ac_n "checking for wide char and multibyte support""... $ac_c" 1>&6 -echo "configure:12666: checking for wide char and multibyte support" >&5 +echo "configure:12954: checking for wide char and multibyte support" >&5 if eval "test \"`echo '$''{'am_cv_multibyte_able'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifdef HAVE_STDLIB_H @@ -12703,7 +12991,7 @@ char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0 wcsncat(wcb2, wcb, 5); ; return 0; } EOF -if { (eval echo configure:12707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_multibyte_able=yes else @@ -12713,7 +13001,7 @@ else cf_save_LIBS="$LIBS" LIBS="-lutf8 $LIBS" cat > conftest.$ac_ext < int main() { @@ -12739,7 +13027,7 @@ char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0 wcsncat(wcb2, wcb, 5); ; return 0; } EOF -if { (eval echo configure:12743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_multibyte_able=libutf8 else @@ -12773,9 +13061,9 @@ EOF echo $ac_n "checking if gettimeofday takes two arguments""... $ac_c" 1>&6 -echo "configure:12777: checking if gettimeofday takes two arguments" >&5 +echo "configure:13065: checking if gettimeofday takes two arguments" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_func_gettimeofday_2args=yes else @@ -12806,12 +13094,12 @@ EOF fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:12810: checking return type of signal handlers" >&5 +echo "configure:13098: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -12828,7 +13116,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:12832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -12848,7 +13136,7 @@ EOF echo $ac_n "checking declaration of signal arguments""... $ac_c" 1>&6 -echo "configure:12852: checking declaration of signal arguments" >&5 +echo "configure:13140: checking declaration of signal arguments" >&5 if eval "test \"`echo '$''{'cf_cv_sig_args'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12857,7 +13145,7 @@ cf_cv_sig_args= for cf_test in "int sig" "int sig, ..." do cat > conftest.$ac_ext < @@ -12865,7 +13153,7 @@ int main() { extern RETSIGTYPE catch($cf_test); signal(SIGINT, catch) ; return 0; } EOF -if { (eval echo configure:12869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13157: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sig_args="$cf_test";break else @@ -12891,13 +13179,13 @@ EOF if test "$ac_cv_func_sigaction" = yes; then echo $ac_n "checking whether sigaction needs _POSIX_SOURCE""... $ac_c" 1>&6 -echo "configure:12895: checking whether sigaction needs _POSIX_SOURCE" >&5 +echo "configure:13183: checking whether sigaction needs _POSIX_SOURCE" >&5 if eval "test \"`echo '$''{'cf_cv_sigact_bad'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -12906,7 +13194,7 @@ int main() { struct sigaction act ; return 0; } EOF -if { (eval echo configure:12910: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sigact_bad=no else @@ -12927,13 +13215,13 @@ EOF echo $ac_n "checking if we have sigaction/related functions""... $ac_c" 1>&6 -echo "configure:12931: checking if we have sigaction/related functions" >&5 +echo "configure:13219: checking if we have sigaction/related functions" >&5 if eval "test \"`echo '$''{'cf_cv_sigaction_funcs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_sigaction_funcs=yes else @@ -12973,7 +13261,7 @@ EOF fi echo $ac_n "checking for fork""... $ac_c" 1>&6 -echo "configure:12977: checking for fork" >&5 +echo "configure:13265: checking for fork" >&5 if eval "test \"`echo '$''{'cf_cv_func_fork'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12982,7 +13270,7 @@ if test "$cross_compiling" = yes; then cf_cv_func_fork=unknown else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_func_fork=yes else @@ -13014,12 +13302,12 @@ EOF echo $ac_n "checking for memmove""... $ac_c" 1>&6 -echo "configure:13018: checking for memmove" >&5 +echo "configure:13306: checking for memmove" >&5 if eval "test \"`echo '$''{'ac_cv_func_memmove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_memmove=yes" else @@ -13061,12 +13349,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for bcopy""... $ac_c" 1>&6 -echo "configure:13065: checking for bcopy" >&5 +echo "configure:13353: checking for bcopy" >&5 if eval "test \"`echo '$''{'ac_cv_func_bcopy'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_bcopy=yes" else @@ -13105,7 +13393,7 @@ if eval "test \"`echo '$ac_cv_func_'bcop echo "$ac_t""yes" 1>&6 echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6 -echo "configure:13109: checking if bcopy does overlapping moves" >&5 +echo "configure:13397: checking if bcopy does overlapping moves" >&5 if eval "test \"`echo '$''{'cf_cv_good_bcopy'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13114,7 +13402,7 @@ else cf_cv_good_bcopy=unknown else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_good_bcopy=yes else @@ -13165,9 +13453,9 @@ fi echo $ac_n "checking if select expects int * arguments""... $ac_c" 1>&6 -echo "configure:13169: checking if select expects int * arguments" >&5 +echo "configure:13457: checking if select expects int * arguments" >&5 cat > conftest.$ac_ext < EOF @@ -13187,7 +13475,7 @@ rm -f conftest* echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6 -echo "configure:13191: checking whether closedir returns void" >&5 +echo "configure:13479: checking whether closedir returns void" >&5 if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13195,13 +13483,13 @@ else ac_cv_func_closedir_void=yes else cat > conftest.$ac_ext < #include <$ac_header_dirent> int closedir(); main() { exit(closedir(opendir(".")) != 0); } EOF -if { (eval echo configure:13205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_closedir_void=no else @@ -13227,7 +13515,7 @@ fi # autoconf 2.5x assumes setvbuf is not reversed when cross-compiling if test "$cross_compiling" != yes ; then echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 -echo "configure:13231: checking whether setvbuf arguments are reversed" >&5 +echo "configure:13519: checking whether setvbuf arguments are reversed" >&5 if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13235,7 +13523,7 @@ else { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext < /* If setvbuf has the reversed format, exit 0. */ @@ -13249,7 +13537,7 @@ main () { exit(0); /* Non-reversed systems segv here. */ } EOF -if { (eval echo configure:13253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_setvbuf_reversed=yes else @@ -13287,12 +13575,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13291: checking for $ac_func" >&5 +echo "configure:13579: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13342,13 +13630,13 @@ done echo $ac_n "checking for type sigaction_t""... $ac_c" 1>&6 -echo "configure:13346: checking for type sigaction_t" >&5 +echo "configure:13634: checking for type sigaction_t" >&5 if eval "test \"`echo '$''{'cf_cv_type_sigaction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -13356,7 +13644,7 @@ int main() { sigaction_t x ; return 0; } EOF -if { (eval echo configure:13360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_type_sigaction=yes else @@ -13376,13 +13664,13 @@ EOF echo $ac_n "checking for nonconflicting termios.h""... $ac_c" 1>&6 -echo "configure:13380: checking for nonconflicting termios.h" >&5 +echo "configure:13668: checking for nonconflicting termios.h" >&5 if eval "test \"`echo '$''{'cf_cv_use_termios_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_use_termios_h=yes else @@ -13435,13 +13723,13 @@ fi echo $ac_n "checking for passwd.pw_gecos""... $ac_c" 1>&6 -echo "configure:13439: checking for passwd.pw_gecos" >&5 +echo "configure:13727: checking for passwd.pw_gecos" >&5 if eval "test \"`echo '$''{'cf_cv_pw_gecos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -13452,7 +13740,7 @@ int main() { char bar = foo.pw_gecos ; return 0; } EOF -if { (eval echo configure:13456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13744: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_pw_gecos=yes else @@ -13472,13 +13760,13 @@ EOF echo $ac_n "checking for tm.tm_gmtoff""... $ac_c" 1>&6 -echo "configure:13476: checking for tm.tm_gmtoff" >&5 +echo "configure:13764: checking for tm.tm_gmtoff" >&5 if eval "test \"`echo '$''{'cf_cv_tm_gmtoff'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_tm_gmtoff=yes else @@ -13518,7 +13806,7 @@ EOF echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:13522: checking for long file names" >&5 +echo "configure:13810: checking for long file names" >&5 if eval "test \"`echo '$''{'ac_cv_sys_long_file_names'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13566,17 +13854,17 @@ for ac_hdr in sys/wait.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:13570: checking for $ac_hdr" >&5 +echo "configure:13858: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13613,17 +13901,17 @@ for ac_hdr in wait.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:13617: checking for $ac_hdr" >&5 +echo "configure:13905: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13627: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13653,17 +13941,17 @@ for ac_hdr in waitstatus.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:13657: checking for $ac_hdr" >&5 +echo "configure:13945: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:13667: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13704,13 +13992,13 @@ fi echo $ac_n "checking for union wait""... $ac_c" 1>&6 -echo "configure:13708: checking for union wait" >&5 +echo "configure:13996: checking for union wait" >&5 if eval "test \"`echo '$''{'cf_cv_type_unionwait'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_type_unionwait=no echo compiles ok w/o union wait 1>&5 @@ -13732,7 +14020,7 @@ else rm -rf conftest* cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_type_unionwait=yes echo compiles ok with union wait and possibly macros too 1>&5 @@ -13772,7 +14060,7 @@ EOF echo $ac_n "checking if the system function returns usable child-status""... $ac_c" 1>&6 -echo "configure:13776: checking if the system function returns usable child-status" >&5 +echo "configure:14064: checking if the system function returns usable child-status" >&5 if eval "test \"`echo '$''{'cf_cv_system_status'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13781,7 +14069,7 @@ else cf_cv_system_status=unknown else cat > conftest.$ac_ext < @@ -13814,7 +14102,7 @@ int main() } EOF -if { (eval echo configure:13818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_system_status=no else @@ -13825,11 +14113,11 @@ else cf_cv_system_status=unknown else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_system_status=yes else @@ -13872,13 +14160,13 @@ EOF if test "$cf_cv_ncurses_version" != no ; then echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6 -echo "configure:13876: checking for obsolete/broken version of ncurses" >&5 +echo "configure:14164: checking for obsolete/broken version of ncurses" >&5 if eval "test \"`echo '$''{'cf_cv_ncurses_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -13892,7 +14180,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:13896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_broken=no else @@ -13917,13 +14205,13 @@ fi echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6 -echo "configure:13921: checking if curses supports color attributes" >&5 +echo "configure:14209: checking if curses supports color attributes" >&5 if eval "test \"`echo '$''{'cf_cv_color_curses'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -13938,7 +14226,7 @@ chtype x = COLOR_BLUE; ; return 0; } EOF -if { (eval echo configure:13942: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_color_curses=yes else @@ -13989,7 +14277,7 @@ if test $check_sig_const = yes ; then echo $ac_n "checking for redefinable signal constants""... $ac_c" 1>&6 -echo "configure:13993: checking for redefinable signal constants" >&5 +echo "configure:14281: checking for redefinable signal constants" >&5 if eval "test \"`echo '$''{'cf_cv_sig_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14001,7 +14289,7 @@ if test -n "$cf_cv_sig_args"; then cf_cv_sig_const=unknown else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_sig_const=yes else @@ -14054,13 +14342,13 @@ fi echo $ac_n "checking for ANSI qsort""... $ac_c" 1>&6 -echo "configure:14058: checking for ANSI qsort" >&5 +echo "configure:14346: checking for ANSI qsort" >&5 if eval "test \"`echo '$''{'cf_cv_comptype'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_comptype=yes else @@ -14100,7 +14388,7 @@ fi echo $ac_n "checking if application can dump core""... $ac_c" 1>&6 -echo "configure:14104: checking if application can dump core" >&5 +echo "configure:14392: checking if application can dump core" >&5 if eval "test \"`echo '$''{'cf_cv_corefile'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14109,7 +14397,7 @@ else cf_cv_corefile=unknown else cat > conftest.$ac_ext < @@ -14150,7 +14438,7 @@ int main() #endif } EOF -if { (eval echo configure:14154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_corefile=yes else @@ -14197,18 +14485,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14201: checking for missing "${ac_func}" extern" >&5 +echo "configure:14489: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14207) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14495) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14230,7 +14518,7 @@ if { (eval echo configure:14226: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14532: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14289,18 +14577,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14293: checking for missing "${ac_func}" extern" >&5 +echo "configure:14581: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14299) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14587) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14322,7 +14610,7 @@ if { (eval echo configure:14318: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14379,18 +14667,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14383: checking for missing "${ac_func}" extern" >&5 +echo "configure:14671: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14389) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14677) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14412,7 +14700,7 @@ if { (eval echo configure:14408: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14521,18 +14809,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14525: checking for missing "${ac_func}" extern" >&5 +echo "configure:14813: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14531) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14819) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14554,7 +14842,7 @@ if { (eval echo configure:14550: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14856: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14608,18 +14896,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14612: checking for missing "${ac_func}" extern" >&5 +echo "configure:14900: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14618) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14906) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14641,7 +14929,7 @@ if { (eval echo configure:14637: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14943: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14698,18 +14986,18 @@ ac_tr_func=`echo "$ac_func" | sed y%abcd echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6 -echo "configure:14702: checking for missing "${ac_func}" extern" >&5 +echo "configure:14990: checking for missing "${ac_func}" extern" >&5 if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else -echo "(line 14708) testing for missing "${ac_func}" external ..." 1>&5 +echo "(line 14996) testing for missing "${ac_func}" external ..." 1>&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CHECK_DECL_FLAG" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* if test -n "$CHECK_DECL_HDRS" ; then # try to work around system headers which are infested with non-standard syntax @@ -14731,7 +15019,7 @@ if { (eval echo configure:14727: \"$ac_l cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval 'cf_cv_func_'${ac_func}'=yes' else @@ -14779,7 +15067,7 @@ fi echo $ac_n "checking for working TIOCGWINSZ""... $ac_c" 1>&6 -echo "configure:14783: checking for working TIOCGWINSZ" >&5 +echo "configure:15071: checking for working TIOCGWINSZ" >&5 if eval "test \"`echo '$''{'cf_cv_use_tiocgwinsz'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14790,7 +15078,7 @@ else cf_cv_use_tiocgwinsz=unknown else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cf_cv_use_tiocgwinsz=yes else @@ -14862,7 +15150,7 @@ esac # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:14866: checking for $ac_word" >&5 +echo "configure:15154: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14892,19 +15180,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:14896: checking for working alloca.h" >&5 +echo "configure:15184: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:14908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -14925,12 +15213,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:14929: checking for alloca" >&5 +echo "configure:15217: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -14990,12 +15278,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:14994: checking whether alloca needs Cray hooks" >&5 +echo "configure:15282: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15024: checking for $ac_func" >&5 +echo "configure:15312: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15075,7 +15363,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:15079: checking stack direction for C alloca" >&5 +echo "configure:15367: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15083,7 +15371,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -15127,17 +15415,17 @@ for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:15131: checking for $ac_hdr" >&5 +echo "configure:15419: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15429: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15166,12 +15454,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15170: checking for $ac_func" >&5 +echo "configure:15458: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15219,7 +15507,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:15223: checking for working mmap" >&5 +echo "configure:15511: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15227,7 +15515,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -15391,12 +15679,12 @@ fi echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6 -echo "configure:15395: checking whether we are using the GNU C Library 2.1 or newer" >&5 +echo "configure:15683: checking whether we are using the GNU C Library 2.1 or newer" >&5 if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -15458,17 +15746,17 @@ stdlib.h string.h unistd.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:15462: checking for $ac_hdr" >&5 +echo "configure:15750: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15499,12 +15787,12 @@ getgid getuid mempcpy munmap putenv sete strdup strtoul tsearch __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15503: checking for $ac_func" >&5 +echo "configure:15791: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15568,7 +15856,7 @@ fi echo $ac_n "checking for iconv""... $ac_c" 1>&6 -echo "configure:15572: checking for iconv" >&5 +echo "configure:15860: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15576,7 +15864,7 @@ else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include @@ -15586,7 +15874,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:15590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else @@ -15598,7 +15886,7 @@ rm -f conftest* am_save_LIBS="$LIBS" LIBS="$LIBS -liconv" cat > conftest.$ac_ext < #include @@ -15608,7 +15896,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:15612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes @@ -15629,13 +15917,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6 EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 -echo "configure:15633: checking for iconv declaration" >&5 +echo "configure:15921: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -15654,7 +15942,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:15658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else @@ -15683,19 +15971,19 @@ EOF echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6 -echo "configure:15687: checking for nl_langinfo and CODESET" >&5 +echo "configure:15975: checking for nl_langinfo and CODESET" >&5 if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char* cs = nl_langinfo(CODESET); ; return 0; } EOF -if { (eval echo configure:15699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_langinfo_codeset=yes else @@ -15718,19 +16006,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:15722: checking for LC_MESSAGES" >&5 +echo "configure:16010: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:15734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -15751,7 +16039,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:15755: checking whether NLS is requested" >&5 +echo "configure:16043: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. @@ -15775,7 +16063,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:15779: checking whether included gettext is requested" >&5 +echo "configure:16067: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then @@ -15794,19 +16082,20 @@ fi - ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` + +ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:15800: checking for libintl.h" >&5 +echo "configure:16089: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15822,13 +16111,180 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 -echo "configure:15827: checking for GNU gettext in libc" >&5 + cf_find_header=yes +else + echo "$ac_t""no" 1>&6 + + cf_find_header=no +cf_search="" + +test -d $HOME && { + test -n "$verbose" && echo " ... testing include-directories under $HOME" + test -d $HOME/include && cf_search="$cf_search $HOME/include" + test -d $HOME/include/gettext && cf_search="$cf_search $HOME/include/gettext" + test -d $HOME/include/gettext/include && cf_search="$cf_search $HOME/include/gettext/include" +} + +# For other stuff under the home directory, it should be sufficient to put +# a symbolic link for $HOME/gettext to the actual package location: +test -d $HOME/gettext && { + test -n "$verbose" && echo " ... testing include-directories under $HOME/gettext" + test -d $HOME/gettext/include && cf_search="$cf_search $HOME/gettext/include" + test -d $HOME/gettext/include/gettext && cf_search="$cf_search $HOME/gettext/include/gettext" +} + +test "$prefix" != /usr/local && \ +test -d /usr/local && { + test -n "$verbose" && echo " ... testing include-directories under /usr/local" + test -d /usr/local/include && cf_search="$cf_search /usr/local/include" + test -d /usr/local/include/gettext && cf_search="$cf_search /usr/local/include/gettext" + test -d /usr/local/include/gettext/include && cf_search="$cf_search /usr/local/include/gettext/include" + test -d /usr/local/gettext/include && cf_search="$cf_search /usr/local/gettext/include" + test -d /usr/local/gettext/include/gettext && cf_search="$cf_search /usr/local/gettext/include/gettext" +} + +test "$prefix" != NONE && \ +test -d $prefix && { + test -n "$verbose" && echo " ... testing include-directories under $prefix" + test -d $prefix/include && cf_search="$cf_search $prefix/include" + test -d $prefix/include/gettext && cf_search="$cf_search $prefix/include/gettext" + test -d $prefix/include/gettext/include && cf_search="$cf_search $prefix/include/gettext/include" + test -d $prefix/gettext/include && cf_search="$cf_search $prefix/gettext/include" + test -d $prefix/gettext/include/gettext && cf_search="$cf_search $prefix/gettext/include/gettext" +} + +test "$prefix" != /opt && \ +test -d /opt && { + test -n "$verbose" && echo " ... testing include-directories under /opt" + test -d /opt/include && cf_search="$cf_search /opt/include" + test -d /opt/include/gettext && cf_search="$cf_search /opt/include/gettext" + test -d /opt/include/gettext/include && cf_search="$cf_search /opt/include/gettext/include" + test -d /opt/gettext/include && cf_search="$cf_search /opt/gettext/include" + test -d /opt/gettext/include/gettext && cf_search="$cf_search /opt/gettext/include/gettext" +} + +test "$prefix" != /usr && \ +test -d /usr && { + test -n "$verbose" && echo " ... testing include-directories under /usr" + test -d /usr/include && cf_search="$cf_search /usr/include" + test -d /usr/include/gettext && cf_search="$cf_search /usr/include/gettext" + test -d /usr/include/gettext/include && cf_search="$cf_search /usr/include/gettext/include" + test -d /usr/gettext/include && cf_search="$cf_search /usr/gettext/include" +} + +test "$includedir" != NONE && \ +test "$includedir" != "/usr/include" && \ +test -d "$includedir" && { + test -d $includedir && cf_search="$cf_search $includedir" + test -d $includedir/gettext && cf_search="$cf_search $includedir/gettext" +} + +test "$oldincludedir" != NONE && \ +test "$oldincludedir" != "/usr/include" && \ +test -d "$oldincludedir" && { + test -d $oldincludedir && cf_search="$cf_search $oldincludedir" + test -d $oldincludedir/gettext && cf_search="$cf_search $oldincludedir/gettext" +} + + +for cf_incdir in $cf_search +do + if test -f $cf_incdir/libintl.h ; then + +cf_fix_cppflags=no +cf_new_cflags= +cf_new_cppflags= +cf_new_extra_cppflags= + +for cf_add_cflags in -I$cf_incdir +do +case $cf_fix_cppflags in +no) + case $cf_add_cflags in #(vi + -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac + case "$CPPFLAGS" in + *$cf_add_cflags) #(vi + ;; + *) #(vi + cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" + ;; + esac + ;; + *) + cf_new_cflags="$cf_new_cflags $cf_add_cflags" + ;; + esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac +done + +if test -n "$cf_new_cflags" ; then + + CFLAGS="$CFLAGS $cf_new_cflags" +fi + +if test -n "$cf_new_cppflags" ; then + + CPPFLAGS="$cf_new_cppflags $CPPFLAGS" +fi + +if test -n "$cf_new_extra_cppflags" ; then + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + + + + + test -n "$verbose" && echo " ... found in $cf_incdir" 1>&6 + + cf_find_header=yes + break + fi + test -n "$verbose" && echo " ... tested $cf_incdir" 1>&6 + +done + +fi + +if test "$cf_find_header" = yes ; then +cat >> confdefs.h <<\EOF +#define HAVE_LIBINTL_H 1 +EOF + + echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6 +echo "configure:16283: checking for GNU gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; @@ -15837,7 +16293,7 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:15841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gnugettext1_libc=yes else @@ -15852,15 +16308,91 @@ fi echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6 if test "$gt_cv_func_gnugettext1_libc" != "yes"; then - echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6 -echo "configure:15857: checking for GNU gettext in libintl" >&5 -if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + +cat > conftest.$ac_ext < +extern int _nl_msg_cat_cntr; +int main() { +bindtextdomain ("", ""); +return (int) gettext ("") + _nl_msg_cat_cntr +; return 0; } +EOF +if { (eval echo configure:16323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + cf_find_linkage=yes else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -lintl $LIBICONV" + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + + cf_find_linkage=no +cf_search="" + +test -d $HOME && { + test -n "$verbose" && echo " ... testing lib-directories under $HOME" + test -d $HOME/lib && cf_search="$cf_search $HOME/lib" + test -d $HOME/lib/intl && cf_search="$cf_search $HOME/lib/intl" + test -d $HOME/lib/intl/lib && cf_search="$cf_search $HOME/lib/intl/lib" +} + +# For other stuff under the home directory, it should be sufficient to put +# a symbolic link for $HOME/intl to the actual package location: +test -d $HOME/intl && { + test -n "$verbose" && echo " ... testing lib-directories under $HOME/intl" + test -d $HOME/intl/lib && cf_search="$cf_search $HOME/intl/lib" + test -d $HOME/intl/lib/intl && cf_search="$cf_search $HOME/intl/lib/intl" +} + +test "$prefix" != /usr/local && \ +test -d /usr/local && { + test -n "$verbose" && echo " ... testing lib-directories under /usr/local" + test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib" + test -d /usr/local/lib/intl && cf_search="$cf_search /usr/local/lib/intl" + test -d /usr/local/lib/intl/lib && cf_search="$cf_search /usr/local/lib/intl/lib" + test -d /usr/local/intl/lib && cf_search="$cf_search /usr/local/intl/lib" + test -d /usr/local/intl/lib/intl && cf_search="$cf_search /usr/local/intl/lib/intl" +} + +test "$prefix" != NONE && \ +test -d $prefix && { + test -n "$verbose" && echo " ... testing lib-directories under $prefix" + test -d $prefix/lib && cf_search="$cf_search $prefix/lib" + test -d $prefix/lib/intl && cf_search="$cf_search $prefix/lib/intl" + test -d $prefix/lib/intl/lib && cf_search="$cf_search $prefix/lib/intl/lib" + test -d $prefix/intl/lib && cf_search="$cf_search $prefix/intl/lib" + test -d $prefix/intl/lib/intl && cf_search="$cf_search $prefix/intl/lib/intl" +} + +test "$prefix" != /opt && \ +test -d /opt && { + test -n "$verbose" && echo " ... testing lib-directories under /opt" + test -d /opt/lib && cf_search="$cf_search /opt/lib" + test -d /opt/lib/intl && cf_search="$cf_search /opt/lib/intl" + test -d /opt/lib/intl/lib && cf_search="$cf_search /opt/lib/intl/lib" + test -d /opt/intl/lib && cf_search="$cf_search /opt/intl/lib" + test -d /opt/intl/lib/intl && cf_search="$cf_search /opt/intl/lib/intl" +} + +test "$prefix" != /usr && \ +test -d /usr && { + test -n "$verbose" && echo " ... testing lib-directories under /usr" + test -d /usr/lib && cf_search="$cf_search /usr/lib" + test -d /usr/lib/intl && cf_search="$cf_search /usr/lib/intl" + test -d /usr/lib/intl/lib && cf_search="$cf_search /usr/lib/intl/lib" + test -d /usr/intl/lib && cf_search="$cf_search /usr/intl/lib" +} + +cf_save_LIBS="$LIBS" +cf_save_LDFLAGS="$LDFLAGS" +for cf_libdir in $cf_search +do + if test -d $cf_libdir ; then + LIBS="-lintl $cf_save_LIBS" + LDFLAGS="$cf_save_LDFLAGS -L$cf_libdir" cat > conftest.$ac_ext < extern int _nl_msg_cat_cntr; @@ -15869,20 +16401,36 @@ bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr ; return 0; } EOF -if { (eval echo configure:15873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - gt_cv_func_gnugettext1_libintl=yes + + test -n "$verbose" && echo " ... found in $cf_libdir" 1>&6 + + cf_find_linkage=yes + break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - gt_cv_func_gnugettext1_libintl=no + + LIBS="$cf_save_LIBS" + LDFLAGS="$cf_save_LDFLAGS" +fi +rm -f conftest* + fi + test -n "$verbose" && echo " ... tested $cf_libdir" 1>&6 + +done + fi rm -f conftest* - LIBS="$gt_save_LIBS" + +if test "$cf_find_linkage" = yes ; then +gt_cv_func_gnugettext1_libintl=yes +else +gt_cv_func_gnugettext1_libintl=no fi -echo "$ac_t""$gt_cv_func_gnugettext1_libintl" 1>&6 fi if test "$gt_cv_func_gnugettext1_libc" = "yes" \ @@ -15902,12 +16450,12 @@ EOF for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15906: checking for $ac_func" >&5 +echo "configure:16454: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15960,21 +16508,22 @@ done set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:15964: checking for $ac_word" >&5 +echo "configure:16512: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$MSGFMT" in - /*) + [\\/]*|?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) + if test -n "$PATH_SEPARATOR"; then PATHSEP="$PATH_SEPARATOR"; fi IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word$ac_exeext; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exeext" break fi fi @@ -15994,7 +16543,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:15998: checking for $ac_word" >&5 +echo "configure:16547: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -16032,21 +16581,22 @@ fi set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:16036: checking for $ac_word" >&5 +echo "configure:16585: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$XGETTEXT" in - /*) + [\\/]*|?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) + if test -n "$PATH_SEPARATOR"; then PATHSEP="$PATH_SEPARATOR"; fi IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word$ac_exeext; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exeext" break fi fi @@ -16067,8 +16617,7 @@ fi CATOBJEXT=.gmo fi -else - echo "$ac_t""no" 1>&6 + fi @@ -16086,21 +16635,22 @@ fi set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:16090: checking for $ac_word" >&5 +echo "configure:16639: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$MSGFMT" in - /*) + [\\/]*|?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) + if test -n "$PATH_SEPARATOR"; then PATHSEP="$PATH_SEPARATOR"; fi IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word$ac_exeext; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exeext" break fi fi @@ -16120,7 +16670,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:16124: checking for $ac_word" >&5 +echo "configure:16674: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -16157,21 +16707,22 @@ fi set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:16161: checking for $ac_word" >&5 +echo "configure:16711: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$XGETTEXT" in - /*) + [\\/]*|?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) + if test -n "$PATH_SEPARATOR"; then PATHSEP="$PATH_SEPARATOR"; fi IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word$ac_exeext; then if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exeext" break fi fi @@ -16230,7 +16781,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:16234: checking for $ac_word" >&5 +echo "configure:16785: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -16263,7 +16814,7 @@ done ac_verc_fail=yes else echo $ac_n "checking version of bison""... $ac_c" 1>&6 -echo "configure:16267: checking version of bison" >&5 +echo "configure:16818: checking version of bison" >&5 ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -16311,7 +16862,7 @@ echo "configure:16267: checking version LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:16315: checking for catalogs to be installed" >&5 +echo "configure:16866: checking for catalogs to be installed" >&5 NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no @@ -16367,7 +16918,7 @@ use_our_messages=no if test "$USE_NLS" = yes ; then if test -d $srcdir/po ; then echo $ac_n "checking if we should use included message-library""... $ac_c" 1>&6 -echo "configure:16371: checking if we should use included message-library" >&5 +echo "configure:16922: checking if we should use included message-library" >&5 # Check whether --enable-included-msgs or --disable-included-msgs was given. if test "${enable_included_msgs+set}" = set; then @@ -16422,17 +16973,17 @@ else do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16426: checking for $ac_hdr" >&5 +echo "configure:16977: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16987: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16516,19 +17067,19 @@ if test ".$use_alloca" = .yes ; then # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:16520: checking for working alloca.h" >&5 +echo "configure:17071: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:16532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -16549,12 +17100,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:16553: checking for alloca" >&5 +echo "configure:17104: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -16614,12 +17165,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:16618: checking whether alloca needs Cray hooks" >&5 +echo "configure:17169: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:16648: checking for $ac_func" >&5 +echo "configure:17199: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -16699,7 +17250,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:16703: checking stack direction for C alloca" >&5 +echo "configure:17254: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -16707,7 +17258,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:17281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -16771,9 +17322,9 @@ fi for cf_hdr in iconv.h do echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6 -echo "configure:16775: checking for $cf_hdr" >&5 +echo "configure:17326: checking for $cf_hdr" >&5 cat > conftest.$ac_ext < @@ -16781,7 +17332,7 @@ echo "configure:16775: checking for $cf_ EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:17336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16807,13 +17358,13 @@ fi done echo $ac_n "checking for iconv_open() //TRANSLIT extension""... $ac_c" 1>&6 -echo "configure:16811: checking for iconv_open() //TRANSLIT extension" >&5 +echo "configure:17362: checking for iconv_open() //TRANSLIT extension" >&5 if test "$cross_compiling" = yes; then echo "$ac_t""unknown" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:17385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then cat >> confdefs.h <<\EOF #define HAVE_ICONV_OPEN_TRANSLIT 1 @@ -16873,17 +17424,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:16877: checking whether -R must be followed by a space" >&5 +echo "configure:17428: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -16899,14 +17450,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -16938,7 +17489,7 @@ rm -f conftest* # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:16942: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:17493: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -16946,7 +17497,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -16979,7 +17530,7 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:16983: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:17534: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -16987,7 +17538,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17027,12 +17578,12 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:17031: checking for gethostbyname" >&5 +echo "configure:17582: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -17076,7 +17627,7 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:17080: checking for gethostbyname in -lnsl" >&5 +echo "configure:17631: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17084,7 +17635,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17125,12 +17676,12 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:17129: checking for connect" >&5 +echo "configure:17680: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -17174,7 +17725,7 @@ fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:17178: checking for connect in -lsocket" >&5 +echo "configure:17729: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17182,7 +17733,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17217,12 +17768,12 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:17221: checking for remove" >&5 +echo "configure:17772: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -17266,7 +17817,7 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:17270: checking for remove in -lposix" >&5 +echo "configure:17821: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17274,7 +17825,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17309,12 +17860,12 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:17313: checking for shmat" >&5 +echo "configure:17864: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -17358,7 +17909,7 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:17362: checking for shmat in -lipc" >&5 +echo "configure:17913: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17366,7 +17917,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17410,7 +17961,7 @@ fi # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:17414: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:17965: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17418,7 +17969,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17544,14 +18095,14 @@ fi if test "$cf_check_cflags" != "$CFLAGS" ; then cat > conftest.$ac_ext < int main() { printf("Hello world"); ; return 0; } EOF -if { (eval echo configure:17555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 @@ -17570,12 +18121,12 @@ fi echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6 -echo "configure:17574: checking for XOpenDisplay" >&5 +echo "configure:18125: checking for XOpenDisplay" >&5 if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_XOpenDisplay=yes" else @@ -17617,7 +18168,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:17621: checking for XOpenDisplay in -lX11" >&5 +echo "configure:18172: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17625,7 +18176,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17660,12 +18211,12 @@ fi echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6 -echo "configure:17664: checking for XtAppInitialize" >&5 +echo "configure:18215: checking for XtAppInitialize" >&5 if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_XtAppInitialize=yes" else @@ -17707,7 +18258,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6 -echo "configure:17711: checking for XtAppInitialize in -lXt" >&5 +echo "configure:18262: checking for XtAppInitialize in -lXt" >&5 ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17715,7 +18266,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17764,7 +18315,7 @@ fi cf_x_athena=${cf_x_athena-Xaw} echo $ac_n "checking if you want to link with Xaw 3d library""... $ac_c" 1>&6 -echo "configure:17768: checking if you want to link with Xaw 3d library" >&5 +echo "configure:18319: checking if you want to link with Xaw 3d library" >&5 withval= # Check whether --with-Xaw3d or --without-Xaw3d was given. @@ -17781,7 +18332,7 @@ else fi echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6 -echo "configure:17785: checking if you want to link with neXT Athena library" >&5 +echo "configure:18336: checking if you want to link with neXT Athena library" >&5 withval= # Check whether --with-neXtaw or --without-neXtaw was given. @@ -17798,7 +18349,7 @@ else fi echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6 -echo "configure:17802: checking if you want to link with Athena-Plus library" >&5 +echo "configure:18353: checking if you want to link with Athena-Plus library" >&5 withval= # Check whether --with-XawPlus or --without-XawPlus was given. @@ -17815,7 +18366,7 @@ else fi echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6 -echo "configure:17819: checking for XextCreateExtension in -lXext" >&5 +echo "configure:18370: checking for XextCreateExtension in -lXext" >&5 ac_lib_var=`echo Xext'_'XextCreateExtension | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -17823,7 +18374,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lXext $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -17873,13 +18424,13 @@ do if test $cf_path != default ; then CPPFLAGS="-I$cf_path/include $cf_save" echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6 -echo "configure:17877: checking for $cf_test in $cf_path" >&5 +echo "configure:18428: checking for $cf_test in $cf_path" >&5 else echo $ac_n "checking for $cf_test""... $ac_c" 1>&6 -echo "configure:17880: checking for $cf_test" >&5 +echo "configure:18431: checking for $cf_test" >&5 fi cat > conftest.$ac_ext < @@ -17888,7 +18439,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:17892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:18443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_result=yes else @@ -17935,23 +18486,23 @@ do if test $cf_path != default ; then LIBS="-L$cf_path/lib $cf_lib $LIBS" echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6 -echo "configure:17939: checking for $cf_lib in $cf_path" >&5 +echo "configure:18490: checking for $cf_lib in $cf_path" >&5 else LIBS="$cf_lib $LIBS" echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6 -echo "configure:17943: checking for $cf_test in $cf_lib" >&5 +echo "configure:18494: checking for $cf_test in $cf_lib" >&5 fi cf_SAVE="$LIBS" LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -18071,14 +18622,14 @@ fi if test "$cf_check_cflags" != "$CFLAGS" ; then cat > conftest.$ac_ext < int main() { printf("Hello world"); ; return 0; } EOF -if { (eval echo configure:18082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then : else echo "configure: failed program was:" >&5 @@ -18096,7 +18647,7 @@ rm -f conftest* fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:18100: checking for XOpenDisplay in -lX11" >&5 +echo "configure:18651: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -18104,7 +18655,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -18136,14 +18687,14 @@ else fi echo $ac_n "checking for XCurses library""... $ac_c" 1>&6 -echo "configure:18140: checking for XCurses library" >&5 +echo "configure:18691: checking for XCurses library" >&5 if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else LIBS="-lXCurses $LIBS" cat > conftest.$ac_ext < @@ -18153,7 +18704,7 @@ int main() { XCursesExit(); ; return 0; } EOF -if { (eval echo configure:18157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_cv_lib_XCurses=yes else diff -Nurp tin-1.9.1/configure.in tin-1.9.2/configure.in --- tin-1.9.1/configure.in 2006-04-09 18:34:37.000000000 +0200 +++ tin-1.9.2/configure.in 2007-02-01 15:09:12.704777211 +0100 @@ -2,10 +2,10 @@ dnl Project : tin - a Usenet reader dnl Module : configure.in dnl Author : Thomas E. Dickey dnl Created : 1995-08-24 -dnl Updated : 2005-07-16 +dnl Updated : 2006-12-21 dnl Notes : dnl -dnl Copyright (c) 1995-2006 Thomas E. Dickey +dnl Copyright (c) 1995-2007 Thomas E. Dickey dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ AC_PREFIX_DEFAULT(/usr/local) dnl PACKAGE is required for GNU gettext PACKAGE=tin -VERSION=1.9.1 +VERSION=1.9.2 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_SUBST(PACKAGE) diff -Nurp tin-1.9.1/doc/CHANGES tin-1.9.2/doc/CHANGES --- tin-1.9.1/doc/CHANGES 2006-04-09 17:06:32.000000000 +0200 +++ tin-1.9.2/doc/CHANGES 2007-02-01 14:07:21.502598322 +0100 @@ -1,3 +1,86 @@ +-- 1.9.2 release 20070201 "Dalaruan" -- + + 018) Christian Weisgerber + BUG. assumed that wchar_t and wint_t are of the same size + FIX. tcurses.c + + 017) Antonio Querubin + BUG. missplaced || + FIX. nntplib.c + +U006) Thomas E. Dickey + ADD. update configure macros + FIX. aclocal.m4 + +U005) Dirk Nimmich + BUG. raw-mode didn't allow rot13 + BUG. can't 'V'iew mime-parts with (illegally) encoded filename + BUG. CatchupNextUnread in page level didn't always work + BUG. 'C'atchup in pager was still not correct (we didn't ever enter the + next group) + BUG. fast/endless reconecction loop after a "200\n\r400\n\r" greeting + BUG. resent command on 503 error + ADD. rewrote NGLIMIT handling + REM. return value of change_config_file() + FIX. proto.h, tin.h, feed.c, group.c, nntplib.c, options_menu.c, page.c + post.c, save.c, select.c + + 015) Michael Bienia + BUG. 'l' from the pager doesn't reposition cursor to last viewed + article + FIX. thread.c + + 014) Urs Janssen + BUG. "Kill text pattern" form killfile menu was applied to + Message-ID and References instead of Message-ID only + BUG. FILTER_FILE_OFFSET was wrong + ADD. allow .ax TLD + FIX. filter.c, policy.h, tin.h + + 013) Urs Janssen + ADD. minor manpage tweaking + FIX. tin.1, tin.5 + + 012) Peter Breitenlohner + BUG. build problem with VPATH + FIX. Makefile.in + + 011) Andrey Simonenko + ADD. updated russian translation + FIX. ru.po + + 010) Urs Janssen + BUG. possible division by zero in thread_by_percentage() + FIX. art.c + +U004) Urs Janssen + ADD. pcre update (6.6 -> 7.0) + ADD. RISC OS handling + ADD. more options to filter menu "Kill text pattern" + ADD. allow UTF-8 descriptions + REM. don't generate Sender on Mac OS X + ADD. config.guess, config.sub update + ADD. hide some regex in 'M'enu if the related option is off + ADD. disallow .so, .um TLDs + ADD. warn about useless cmd-line option combinations + ADD. enable CAPABILLITIES code + ADD. updated german translation + FIX. Makefile, aclocal.m4, configure[.in], extern.h, policy.h, filter.c + init.c, lang.c, main.c, mail.c, nntplib.c, options_menu.c, post.c + pcre/*, config.guess, config.sub, de.po + +U003) Michael Bienia + ADD. 'M'enu option for VERBATIM_*_REGEXs + ADD. new option: sort by date of last posted article + ADD. merge tinrc.{pgdn_goto_next,tab_goto_next_unread, + space_goto_next_unread} into one option tinrc.goto_next_unread + ADD. merge PAGE_PAGE_DOWN3 (SPACE) into GLOBAL_PAGE_DOWN + ADD. minor code cleanup + FIX. extern.h, keymap.h, proto.h, tin.h, tinrc.h, version.h, art.c + attrib.c, charset.c, config.c, cook.c, help.c, init.c, keymap.c + lang.c, options_menu.c, page.c, tincfg.tbl, keymap.sample, tin.1 + tin.5 + -- 1.9.1 release 20060409 "Benmore" -- U002) Urs Janssen diff -Nurp tin-1.9.1/doc/CREDITS tin-1.9.2/doc/CREDITS --- tin-1.9.1/doc/CREDITS 2006-02-28 20:08:29.000000000 +0100 +++ tin-1.9.2/doc/CREDITS 2007-01-25 20:31:23.857174275 +0100 @@ -6,39 +6,39 @@ George Baltz, Dieter Baron, Volker Barth Dieter Becker, Wolfgang Behrens, Fabrice Bellet, Greg Berigan, Enrik Berkhan, Juergen Bernau, Dan Berry, Michael Bienia, David Binderman, Thomas Bliem, Andrey Blochintsev, Chris Blum, Fokke de Boer, Andreas Borchert, -Sebastian Bork, Mark Boucher, Robert Brady, Jessica Brennan, Bill Brolik, -Travis Brown, Herman ten Brugge, Martin Buck, Matthias Buelow, Jeremy -Buhler, Leila Burrell-Davis, Sean Casey, Peter Castro, Troy Cauble, Andrey -A. Chernov, Albert Chin-A-Young, Park Chong-Dae, Tan Kwee Chuan, Boleslaw -Ciesielski, Robert Claeson, Steven Cogswell, Don Costello, Joshua Crawford, -Bryan Curnutt, Ned Danieley, Lars Dannenberg, Chris Davies, John Davis, -Borislav Deianov, Thomas E. Dickey, Martin Dickopp, Olaf Dietrich, Herbert -Martin Dietze, Theo Van Dinter, Ralf Doeblitz, Bryan Dongray, Michael -Douglass, Nickolay Dudorov, Craig Durland, Bernd Eckenfels, Phil Edge, Kirk -Edson, Nick Efthymiou, Stefan Elf, Nigel Ellis, Andrei Emeltchenko, L. Scott -Emmons, Rob Engle, Olle Eriksson, Brent Ermlick, Bernd Ernesti, Ragnar -Hojland Espinosa, Jason Faultless, Michael Faurot, Werner Fleck, John M. -Flinchbaugh, Andy Gabor, Christian Garbs, Torsten Gesang, Ruediger Geys, -Callum Gibson, Mike Glendinning, Igor Goryachev, Philippe Goujard, Dan -Greenspan, Andrew Greer, Dennis Grevenstein, Karlo Gross, Carl Hage, Piers -Haken, Paul Halsema, Ed Hanway, Scott Hauck, Christian Haul, James Hawtin, -Per Headland, Arnold Hendriks, Daniel Hermans, Jose Herrero, Dave Hill, Tom -Hite, Torsten Homeyer, Ulli Horlacher, Keith Howell, Tommy Hsieh, Shih-Kun -Huang, Steve Hunt, Jeff Hurwitt, Jeon Hyoung-Jo, Ali Ibraimi, Pieter -Immelman, Jarkko Isokungas, Patrick St. Jean, Hal Jespersen, Park Sang Jin, -Robbin Johnson, Jarkko Jormanainen, Yury July, Nelson Kading, Geoffrey -Keating, Karsten Keil, Charles S. Kerr, Fritz Kleeman, Andreas Kies, Janne -Kiviluoto, Tomasz Kloczko, Dwarven Knight, Thomas Koenig, Karl-Koenig -Koenigsson, Sebnem Korkmaz, Martin Kraemer, Gerald Krause, Thomas Kroener, -Piotr Kucharski, Florian Kuehnert, Bernd Kuemmerlen, Kris Kugel, Stephan -Kulow, Manoj Kumar, Dawid Kuroczko, Yuri Kuzmenko, Olivier Lacroix, Geoff -Lane, Alex Lange, Alain Lasserre, Stanislav Latishko, Hannu Laurila, -Yen-Ming Lee, Vincent Lefevre, Alexander Lehmann, Marty Leisner, Thomas -Leitner, Hakan Lennestal, Kevin Lentin, Chua Choon Leong, Chris Lewis, -Andreas Ley, David-Michael Lincke, Otto Lind, Richard Lloyd, Florian Lohoff, -Reinhard Luebke, Clifford Luke, Michael Lupp, David MacKenzie, Hugh Mahon, -Giuseppe De Marco, Scott Marovich, Dmitri A. Martynoff, Kazushi Marukawa, -Timur Maryin, William McBrine, Geoff McCaughan, Owen Medd, Philipp +Sebastian Bork, Mark Boucher, Robert Brady, Peter Breitenlohner, Jessica +Brennan, Bill Brolik, Travis Brown, Herman ten Brugge, Martin Buck, Matthias +Buelow, Jeremy Buhler, Leila Burrell-Davis, Sean Casey, Peter Castro, Troy +Cauble, Andrey A. Chernov, Albert Chin-A-Young, Park Chong-Dae, Tan Kwee +Chuan, Boleslaw Ciesielski, Robert Claeson, Steven Cogswell, Don Costello, +Joshua Crawford, Bryan Curnutt, Ned Danieley, Lars Dannenberg, Chris Davies, +John Davis, Borislav Deianov, Thomas E. Dickey, Martin Dickopp, Olaf +Dietrich, Herbert Martin Dietze, Theo Van Dinter, Ralf Doeblitz, Bryan +Dongray, Michael Douglass, Nickolay Dudorov, Craig Durland, Bernd Eckenfels, +Phil Edge, Kirk Edson, Nick Efthymiou, Stefan Elf, Nigel Ellis, Andrei +Emeltchenko, L. Scott Emmons, Rob Engle, Olle Eriksson, Brent Ermlick, Bernd +Ernesti, Ragnar Hojland Espinosa, Jason Faultless, Michael Faurot, Werner +Fleck, John M. Flinchbaugh, Andy Gabor, Christian Garbs, Torsten Gesang, +Ruediger Geys, Callum Gibson, Mike Glendinning, Igor Goryachev, Philippe +Goujard, Dan Greenspan, Andrew Greer, Dennis Grevenstein, Karlo Gross, Carl +Hage, Piers Haken, Paul Halsema, Ed Hanway, Scott Hauck, Christian Haul, +James Hawtin, Per Headland, Arnold Hendriks, Daniel Hermans, Jose Herrero, +Dave Hill, Tom Hite, Torsten Homeyer, Ulli Horlacher, Keith Howell, Tommy +Hsieh, Shih-Kun Huang, Steve Hunt, Jeff Hurwitt, Jeon Hyoung-Jo, Ali +Ibraimi, Pieter Immelman, Jarkko Isokungas, Patrick St. Jean, Hal Jespersen, +Park Sang Jin, Robbin Johnson, Jarkko Jormanainen, Yury July, Nelson Kading, +Geoffrey Keating, Karsten Keil, Charles S. Kerr, Fritz Kleeman, Andreas +Kies, Janne Kiviluoto, Tomasz Kloczko, Dwarven Knight, Thomas Koenig, +Karl-Koenig Koenigsson, Sebnem Korkmaz, Martin Kraemer, Gerald Krause, +Thomas Kroener, Piotr Kucharski, Florian Kuehnert, Bernd Kuemmerlen, Kris +Kugel, Stephan Kulow, Manoj Kumar, Dawid Kuroczko, Yuri Kuzmenko, Olivier +Lacroix, Geoff Lane, Alex Lange, Alain Lasserre, Stanislav Latishko, Hannu +Laurila, Yen-Ming Lee, Vincent Lefevre, Alexander Lehmann, Marty Leisner, +Thomas Leitner, Hakan Lennestal, Kevin Lentin, Chua Choon Leong, Chris +Lewis, Andreas Ley, David-Michael Lincke, Otto Lind, Richard Lloyd, Florian +Lohoff, Reinhard Luebke, Clifford Luke, Michael Lupp, David MacKenzie, Hugh +Mahon, Giuseppe De Marco, Scott Marovich, Dmitri A. Martynoff, Kazushi +Marukawa, Timur Maryin, William McBrine, Geoff McCaughan, Owen Medd, Philipp Mergenthaler, Andreas Metzler, Arkadiusz Miskiewicz, Soren Moller, Bruce Momjian, Sergio Morales, Michael Morrell, Klaus Mueller, Mike Muise, Udo Munk, Steven Michael Murphy, John R. Myers, Daniel Naber, Torsten Neumann, @@ -47,15 +47,15 @@ O'Reilly, Oleg Ohotnikov, Ronald Orr, Ju Paeps, Jeb Palmer, Neil Parker, Joseph Parmelee, Tom Parry, Jim Patterson, Sven Paulus, Walter Pelissero, Cameron Perkins, Colin Perkins, Eric Peterson, Tim Pierce, Bill Poitras, Scott W. Powers, Wolfgang Prediger, Marc -Prud'hommeaux, GianPiero Puccioni, Thomas Quinot, Stefan Rapp, Martin -Reising, Kyle Rhorer, Ted Richards, Steve Robbins, Ollivier Robert, Branden -Robinson, Jim Robinson, Thomas Roessler, Erik van Roode, Meelis Roos, -Stephen Roseman, Roland Rosenfeld, Peter Van Rossem, Clifton Royston, -Juergen Salk, Aleksey Salow, Rich Salz, Gary Sanders, Nickolay Saukh, John -Sauter, Christopher Sawtell, Holger Schif, Volker Schmidt, John Schmitz, -Torsten Schneider, Stefan Scholl, Rainer Scholz, Juergen Schroeder, Larry -Schwimmer, Randy Scott, Bart Sears, Karl-Olav Serrander, Ozge Sevinc, Doug -Sewell, Chung-chieh Shan Philip Shearer, Jungshik Shin, Sergey Shkonda, +Prud'hommeaux, GianPiero Puccioni, Antonio Querubin, Thomas Quinot, Stefan +Rapp, Martin Reising, Kyle Rhorer, Ted Richards, Steve Robbins, Ollivier +Robert, Branden Robinson, Jim Robinson, Thomas Roessler, Erik van Roode, +Meelis Roos, Stephen Roseman, Roland Rosenfeld, Peter Van Rossem, Clifton +Royston, Juergen Salk, Aleksey Salow, Rich Salz, Gary Sanders, Nickolay +Saukh, John Sauter, Christopher Sawtell, Holger Schif, Volker Schmidt, John +Schmitz, Torsten Schneider, Stefan Scholl, Rainer Scholz, Juergen Schroeder, +Larry Schwimmer, Randy Scott, Bart Sears, Karl-Olav Serrander, Ozge Sevinc, +Doug Sewell, Chung-chieh Shan Philip Shearer, Jungshik Shin, Sergey Shkonda, Andreas Siegert, Andrey Simonenko, Mark Smith, Toomas Soome, Steve Spearman, Helmut Springer, Cliff Stanford, Steve Starck, Jason Steiner, Ralf Stephan, Michael Stenns, Helmrich Streitmatter, Hans Werner Strube, Dieter Stueken, @@ -63,6 +63,7 @@ Ed Sznyter, Lech Szychowski, Dean Takemo Carsten Theis, Julian Thompson, David Tiller, Andry Timonin, Elmar W. Tischhauser, Mark Tomlin, Mark Tomlinson, Michael Traub, Martin Treusch von Buttlar, Mark Trumbull, Alex Vasylenko, Michael Velten, Adri Verhoef, Paul -Vickers, Corinna Vinschen, Oliver B. Warzecha, Jason Wessel, Cary Whitney, -Henrik Wist, Greg Woods, Andreas Wrede, Lloyd Wright, Jens Wuepper, Herbert -Xu, Billy Y., Hideaki Yoshfuji, Nickolai Zeldovich, Zbigniew Zych +Vickers, Corinna Vinschen, Oliver B. Warzecha, Christian Weisgerber, Jason +Wessel, Cary Whitney, Henrik Wist, Greg Woods, Andreas Wrede, Lloyd Wright, +Jens Wuepper, Herbert Xu, Billy Y., Hideaki Yoshfuji, Nickolai Zeldovich, +Zbigniew Zych diff -Nurp tin-1.9.1/doc/TODO tin-1.9.2/doc/TODO --- tin-1.9.1/doc/TODO 2006-03-16 16:10:26.000000000 +0100 +++ tin-1.9.2/doc/TODO 2006-12-21 14:41:16.000000000 +0100 @@ -4,42 +4,16 @@ not read only ,-). Bugs ---- -o when entering an article from the group level via GroupNextUnreadArtOrGrp - ('TAB'), PageListThd ('l') points to a 'random' article in the thread - [20051224 Urs Janssen ] - o a wrong usename in ~/.newsauth can't be corrected in the first pass [20050816 Urs Janssen ] -o can 'V'iew mime-parts with (illegal) encoded filename, e.g: - | Content-Type: image/jpeg; - | name="=?iso-8859-1?Q?internationales_Zeichen_f=FCr_Ehe.jpg?=" - | Content-Disposition: attachment; - | filename="=?iso-8859-1?Q?internationales_Zeichen_f=FCr_Ehe.jpg?=" - as tin treats the leading '=' as mailbox indicator and complains - | Save filename for image/jpeg is a mailbox. Attachment not saved - [20050203 Urs Janssen ] - o unexpected multiline responses confuse tin, e.g.: | 240 Article posted =?ISO-8859-1?Q?=3C=3D=3Fiso=2D8859=2D1=3Fq=3F=3F=3D87r7k8na?= | =?ISO-8859-1?Q?vt=2Efsf=40urs=2Did=2Etest=2Eka=2Enu=3E?= (the servers response should be a single line (INN 2.2)) [20050207 Urs Janssen ] -o fast/endless reconecction loop after a "200\n\r400\n\r" greeting, - see - - -o rot13-toggle '%' doesn't work in raw '^H' mode (but isn't disabled, so - the info message in the last line is wrong). - [20041125 Urs Janssen ] - -o AFAICS change_config_file() currently has a static return value, - but some callers do check the return value and in case we did - change something we should update (global) attributes accordingly. - [20030511 Urs Janssen ] - o Changes to int/bool tinrc variables in the Option Menu don't propagate back to the attributes, not even groups with global attributes. This is because the Option-Menu in {group,page}.c doesn't reread the @@ -47,9 +21,6 @@ o Changes to int/bool tinrc variables i flashing changes to all affected groups and remove the reread of the attributes file from select.c -o 'C'atchup in pager is still not correct (we don't ever enter the next group) - [20030515 Urs Janssen ] - o piping/printing articles grabbles screen [20030501 Urs Janssen ] @@ -65,8 +36,6 @@ o batch mode has several bugs cmd-line group) and the cmd-line group is not displayed in the statistics nor taken into account for the 'any unread news' status. - -vc could be more verbose (like -vcZ is) - - -cZ has an unclear return value (shall we return 0 or 2 if there - was unread news before -c marked it as read?) - -o currently is not a 'batch_mode' option [Urs Janssen ] @@ -84,13 +53,6 @@ o add version number to other config-fi ISO-8859-x vs. unicode) [Urs Janssen ] -o 'K' is still a bit inconsistent: - - in the group and thread menu it marks current item read & jumps to the - next unread item. - - in the article pager (page.c) it marks the rest of the current thread - read and jumps to the next unread article. should we let 'K' behave - like in the pager? - o rewrite code to use INEWS_PATH instead of INEWSDIR [20021007 Urs Janssen @@ -105,10 +67,6 @@ o overview file cacheing code is over-c headers (after unfolding and tab removal). - Add docs to explain how to create system-wide overviews -o tin uses the first sig-isolator as recent one, USEFOR says it should - use the last. There is no consensus that tin should follow this USEFOR - requirement. - o iso2asc conversion is missing for 'internal' strings (e.g. 'M'enu) [20020319 Urs Janssen ] @@ -177,7 +135,7 @@ o allow bold, underline, italic, ... as [20030218 Serge Matveev ] o add 'M'enu option to turn on/off slrn '#v+'/'#v-' verbatim mark handling. - (and make the VERBATIM_*_REGEXs user configurable; add a verbatim_color; ...) + (and add a verbatim_color; ...) [20060311 Urs Janssen ] o hierarchical 'M'enu, e.g. put all art_marked_*into a 'submenu', ... @@ -362,7 +320,7 @@ o Add to the 'M'enu: 'h' (GLOBAL_HELP) 'R' (GLOBAL_BUGREPORT) '!' (GLOBAL_SHELL_ESCAPE) - and maybe a way to changed built in path like DEFAULT_MAILER, PATH_PGP, ... + and maybe a way to change built in path like DEFAULT_MAILER, PATH_PGP, ... o Add to the POST_INFO-level: '?','/','\' search (partly done, currently only the displayed page is @@ -441,11 +399,6 @@ o check if any valid groups are in the o bring up a warning on a long Newsgroups: (>=5) line and force the user to confirm every single group he wants to post (or redirect followups to) in. (N/y) - rewrite NGLIMIT handling (post.c) ulBuildArgv() would replace a lot of - the current code - (not just truncate Newsgroups:-line after the NGLIMITth newsgroup - - or if we do so - give an extra warning to the user and give him the - chance to reedit the Newsgroups:-line) o bring up a warning when trying to f'up into a binary group (use a regexp to detect binary groups e.g.: @@ -525,14 +478,6 @@ o upgrade configure-script to autoconf- o remove untranslateable constructs like txt_prefix_* [20050413 Urs Janssen ] -o merge tinrc.space_goto_next_unread, tinrc.tab_goto_next_unread and - tinrc.pgdn_goto_next into a single option list - tinrc.goto_next_unread = {SPACE, TAB, PGDN, - SPACE | TAB, SPACE | PGDN, - TAB | PGDN, SPACE | TAB | PGDN} - to shorten 'M'enu and tinrc. - [20050709 Urs Janssen ] - o keys which could be renamed/merged: - 'm' GroupMail, PageMail, PostMail, ThreadMail - 'N' GroupNextUnreadArt, PageNextUnreadArt, (SelectNextUnreadGrp) @@ -617,8 +562,6 @@ o close potential security holes: can locate potential security holes] -o add a _-_ to the local part of the MSGID on a subject-change - o add to autoconf: - eradicate platform/compiler ifdefs @@ -728,6 +671,25 @@ o replace "\\" by "\e" in manpages (por Not yet classified ------------------ +o tin uses the first sig-isolator as recent one, USEFOR says it should + use the last. There is no consensus that tin should follow this USEFOR + requirement. + +o 'K' is still a bit inconsistent: + - in the group and thread menu it marks current item read & jumps to the + next unread item. + - in the article pager (page.c) it marks the rest of the current thread + read and jumps to the next unread article. should we let 'K' behave + like in the pager? + +o rename prompt_followupto (to prompt_extra_headres) and make it an option + list like {"Followup-To"; "Summary"; "Keywords"; + "Followup-To & Summary"; "Followup-To & Keywords"; + "Summary & Keywords"; "Followup-To, Summary & Keywords"} or make it a + user-definable text field like news_headers_to_display? or leave this + entirely to the user - he could tweak atributes accrodingly. + [20060503 Urs Janssen ] + o in several places only the latest keybinding is shown in prompts (e.g. "q=quit, e=edit, i=ispell, g=pgp, M=menu, w=post, o=postpone: w" with "PostPost p y w" in keymaps) @@ -825,7 +787,7 @@ o cleanup main.c/init_selfinfo() o either use libinn(3) where ever it's possible inside the code (if configured to use that lib; the related configure check needs to be rewritten from scratch (limitations to SPOOLDIR doesn't make sense - anymore, test for libinn.h is missing, ...)) or drop support for it. + anymore, test for libinn.h is missing, ...)) or drop support for it. [20030511 Urs Janssen ] o detect pcre version and add compatibility macros for old versions diff -Nurp tin-1.9.1/doc/WHATSNEW tin-1.9.2/doc/WHATSNEW --- tin-1.9.1/doc/WHATSNEW 2006-03-11 13:38:30.000000000 +0100 +++ tin-1.9.2/doc/WHATSNEW 2006-12-31 02:22:21.680324671 +0100 @@ -3,6 +3,8 @@ New features and changes since tin-1.8.1 New features ------------ . slrn style verbatim marks +. UTF-8 descriptions (RFC 3977) +. sort by date of last posted article Changes ------- diff -Nurp tin-1.9.1/doc/keymap.sample tin-1.9.2/doc/keymap.sample --- tin-1.9.1/doc/keymap.sample 2006-02-15 19:44:36.000000000 +0100 +++ tin-1.9.2/doc/keymap.sample 2006-12-21 14:41:16.000000000 +0100 @@ -5,7 +5,6 @@ # # Global keys -PageDown3 SPACE ShellEscape ! SetRange # LastPage $ @@ -45,7 +44,7 @@ QuickFilterKill ] ScrollUp < ScrollDown > PageUp b ^B ^U -PageDown ^D ^F +PageDown ^D ^F SPACE RedrawScr ^L MenuFilterSelect ^A MenuFilterKill ^K diff -Nurp tin-1.9.1/doc/mailcap.sample tin-1.9.2/doc/mailcap.sample --- tin-1.9.1/doc/mailcap.sample 2006-02-15 19:44:36.000000000 +0100 +++ tin-1.9.2/doc/mailcap.sample 2006-12-21 14:41:16.000000000 +0100 @@ -12,7 +12,7 @@ image/*;\ test=test "$DISPLAY";\ nametemplate=%s.IMAGE message/rfc822;\ - if test -x /usr/bin/less \; then less '%s' \; else more '%s' \; fi;\ + ${PAGER-"more"} '%s'\; description=Mail Text;\ needsterminal text/html;\ @@ -21,8 +21,8 @@ text/html;\ needsterminal;\ nametemplate=%s.html text/*;\ - if test -x /usr/bin/less \; then less '%s' \; else more '%s' \; fi;\ - edit=${EDITOR-vi} '%s';\ - compose=${EDITOR-vi} '%s';\ + ${PAGER-"more"} '%s'\; + edit=${EDITOR-"vi"} '%s';\ + compose=${EDITOR-"vi"} '%s';\ print=a2ps '%s';\ needsterminal diff -Nurp tin-1.9.1/doc/tin.1 tin-1.9.2/doc/tin.1 --- tin-1.9.1/doc/tin.1 2006-03-27 16:09:32.000000000 +0200 +++ tin-1.9.2/doc/tin.1 2007-02-01 14:44:31.469801144 +0100 @@ -3,7 +3,7 @@ .\" Module : tin.1 .\" Author : I. Lea, U. Janssen .\" Created : 1991-08-23 -.\" Updated : 2006-03-27 +.\" Updated : 2007-02-01 .\" Notes : use american english; still needs some work, e.g.: .\" - document authorization (.newsauth) .\" - document random organization feature @@ -19,7 +19,7 @@ .fi .. .\" -.TH tin 1 "March 27th, 2006" "1.9.1" "A Usenet newsreader" +.TH tin 1 "February 1st, 2007" "1.9.2" "A Usenet newsreader" .\" .\" .SH NAME @@ -419,8 +419,7 @@ within \fBtin\fP. Beg. of list/article \fBHome\fP \fBFirstPage\fP (\fB^\fP) End of list/article \fBEnd\fP \fBLastPage\fP (\fB$\fP) Page Up \fBPgUp\fP \fBPageUp\fP (\fBu\fP, \fB^U\fP or \fB^B\fP) -Page Down \fBPgDn\fP \fBPageDown\fP (\fB^D\fP or \fB^F\fP) - or \fBPageDown3\fP (\fB\fP) +Page Down \fBPgDn\fP \fBPageDown\fP (\fB^D\fP or \fB^F\fP or \fB\fP) Line Up \fBUp arrow\fP \fBUp\fP (\fBk\fP or \fB^P\fP) Line Down \fBDown arrow\fP \fBDown\fP (\fBj\fP or \fB^N\fP) .fi @@ -1124,8 +1123,9 @@ information on filtering. Goto next base article. .TP .B PageNextUnread '' -Goto next unread article. If the tinrc variable \fBtab_goto_next_unread\fP -is set to OFF, then this key will first page through the current article. +Goto next unread article. If the tinrc variable \fBgoto_next_unread\fP +doesn't contain PageNextUnread, then this key will first page through the +current article. .TP .B SearchAuthF 'a' Author forward search. @@ -1663,6 +1663,14 @@ fetching articles from your first unread .B Catchup group using left key (group_catchup_on_exit) If ON catchup group when leaving with the left arrow key. Default is ON. .TP +.B Go to the next unread article with (goto_next_unread) +Which keys \fBtin\fP should accept to jump to the next unread article. +Possible is any combination of \fBPageDown\fP and \fBPageNextUnread\fP. +When \fBPageDown\fP is set \fBtin\fP jumps to the next article at the +end of the current one. When \fBPageNextUnread\fP is set \fBtin\fP jumps +immediately to the next article when \fBPageNextUnread\fP ('\fB\fP') +is pressed. Default is PageNextUnread. +.TP .B Max. length of group names shown (groupname_max_length) Maximum length of the names of newsgroups to be displayed so that more of the newsgroup description can be displayed. Default is 32. @@ -1879,10 +1887,6 @@ The possible values are: Some normalization modes are only available if they are supported by the library \fBtin\fP uses to do the normalization. Default is NFKC. .TP -.B PgDn goes to next unread article (pgdn_goto_next) -If ON the Page Down keys will go to the next unread article when pressed -at the end of a message. Default is ON. -.TP .B Goto first unread article in group (pos_first_unread) If ON put cursor at first unread article in group otherwise at last article. Default is ON. @@ -2114,6 +2118,10 @@ allowed: (default). .IP 2 \fBScore (ascending)\fP, sort threads by filtering score ascending. +.IP 3 +\fBLast posting date (descending)\fP, sort threads by date of last posting descending. +.IP 4 +\fBLast posting date (ascending)\fP, sort threads by date of last posting ascending. .RE .TP .B Spamtrap warning address parts (spamtrap_warning_addresses) @@ -2123,12 +2131,6 @@ these strings. The matching is case-inse .sp \fIspam,delete,remove\fR .TP -.B Space goes to next unread article (space_goto_next_unread) - normally acts as a Page Down key and has no effect at the end of an -article. If this option is turned ON the command will go to the next -unread article when the end of the article is reached (rn-style pager). -Default is OFF. -.TP .B Regex used to highlight *stars* (stars_regex) A regular expression that will be applied when reading articles. All matching words are shown in \fBcol_markstar\fP or \fBmono_markstar\fP. If @@ -2163,11 +2165,6 @@ A regular expression that will be applie matching words are shown in \fBcol_markstroke\fP or \fBmono_markstroke\fP. If \fBstrokes_regex\fP is blank, then \fBtin\fP uses a built-in default. .TP -.B Tab goes to next unread article (tab_goto_next_unread) -If enabled pressing \fBPageNextUnread\fP ('\fB\fP') at the Article -level will go to the next unread article immediately instead of first -paging through the current one. Default is ON. -.TP .B Wrap around threads on next unread (wrap_on_next_unread) If enabled a search for the next unread article will wrap around all articles to find also previous unread articles. If disabled the search @@ -2252,7 +2249,7 @@ If enabled \fBtin\fP uses ANSI-colors. D Default is OFF. .TP .B Use mouse in xterm (use_mouse) -Allows the mouse key support in a +Allows the mouse button support in a .BR xterm (1x) to be enabled/disabled. Default is OFF. @@ -2267,6 +2264,12 @@ and .BR slrnface (1) must be in your $\fBPATH\fP. Default is OFF. .TP +.B Regex for begin of a verbatim block (verbatim_begin_regex) +A regular expression that tin will use to find the begin of a verbatim block. +.TP +.B Regex for end of a verbatim block (verbatim_end_regex) +A regular expression that tin will use to find the end of a verbatim block. +.TP .B Wildcard matching (wildcard) Allows you to select how \fBtin\fP matches strings. The default is 0 and uses the wildmat notation, which is how this has traditionally been handled. @@ -2794,7 +2797,9 @@ For a detailed description see .IR ${TIN_HOMEDIR\-"$HOME"}/.newsrc .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/.oldnewsrc +.fi .PP .IR ${TIN_HOMEDIR\-"$HOME"}/.signature @@ -2811,7 +2816,9 @@ For a detailed description see .IR ${TIN_INDEX_MAILDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.mail/ .PP +.nf .IR ${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news${NNTPSERVER+"\-$NNTPSERVER"}/ +.fi .PP .IR ${TIN_INDEX_SAVEDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.save/ @@ -2832,9 +2839,11 @@ For a detailed description see .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/filter .PP +.nf .IR /etc/tin/keymap${${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}:+".${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}"} .br .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/keymap${${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}:+".${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}"} +.fi .PP .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/mailgroups @@ -2852,10 +2861,14 @@ For a detailed description see .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/postponed.articles .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT+":$NNTPPORT"}/newsgroups +.fi .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT+":$NNTPPORT"}/serverrc +.fi .PP .\" .IR ${TIN_LIBDIR\-NEWSLIBDIR}/tinrc @@ -3304,7 +3317,6 @@ Urs Janssen .BR mmdf (5), .BR newsoverview (5), .BR tin (5), -.BR RFC977 , .BR RFC1036 , .BR RFC1524 , .BR RFC2045 , @@ -3312,5 +3324,6 @@ Urs Janssen .BR RFC2047 , .BR RFC2048 , .BR RFC2822 , -.BR RFC2980 -.\" .BR RFC3977 +.BR RFC2980 , +.BR RFC3977 , +.BR RFC4643 diff -Nurp tin-1.9.1/doc/tin.5 tin-1.9.2/doc/tin.5 --- tin-1.9.1/doc/tin.5 2006-02-28 20:28:15.000000000 +0100 +++ tin-1.9.2/doc/tin.5 2007-02-01 14:44:52.781170096 +0100 @@ -2,7 +2,7 @@ .\" Module : tin.5 .\" Author : U. Janssen .\" Created : 2000-07-10 -.\" Updated : 2005-09-14 +.\" Updated : 2007-02-01 .\" Notes : needs a some work .\" .\" Macros @@ -16,7 +16,7 @@ .fi .. .\" -.TH tin 5 "February 28th, 2006" "1.9.1" "A Usenet newsreader" +.TH tin 5 "February 1st, 2007" "1.9.2" "A Usenet newsreader" .SH NAME tin, rtin \- related files @@ -191,7 +191,7 @@ xv \-8 \-geometry +0 '%s';\\ .br description=%{name} %t\-Image;\\ .br -test=test "$DISPLAY" \\ +test=test "$DISPLAY" != "";\\ .br nametemplate=%s.IMAGE .in -.3i @@ -199,17 +199,13 @@ nametemplate=%s.IMAGE message/rfc822;\\ .br .in +.3i -if test \-x /usr/bin/less \\;\\ -.in +.3i -then less '%s' \\;\\ -else more '%s' \\; fi;\\ -.in -.3i +${PAGER\-"more"} '%s';\\ .br -edit=${EDITOR\-vi} '%s';\\ +edit=${EDITOR\-"vi"} '%s';\\ .br -compose=${EDITOR\-vi} '%s';\\ +compose=${EDITOR\-"vi"} '%s';\\ .br -print=a2ps %s;\\ +print=a2ps '%s';\\ .br needsterminal .in -.3i @@ -303,7 +299,9 @@ news.software.readers: 1\-19567,19571\-1 .RE .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/.oldnewsrc +.fi .sp .RS backup of \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR @@ -340,7 +338,9 @@ mailgroups index files .RE .PP +.nf .IR ${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news${NNTPSERVER+"\-$NNTPSERVER"}/ +.fi .sp .RS newsgroups index files @@ -716,9 +716,11 @@ subj=\\b(cd|[rk]?)?tin(d|pre)?[\-.0\-9]* .\" .\" TODO: mention THREAD_EDIT_FILTER and SELECT_EDIT_FILTER +.nf .IR /etc/tin/keymap${${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}:+".${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}"} .br .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/keymap${${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}:+".${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}"} +.fi .\" sorry that one got a bit complex ,-) .sp .RS @@ -728,7 +730,6 @@ their defaults. If a keynames is bound t .sp .nf .ta \w'GroupSelThdIfUnreadSelected 'u +\w'SPACE'u +\w'SPACE'u -\fBPageDown3\fP SPACE \fBShellEscape\fP ! \fBSetRange\fP # \fBLastPage\fP $ @@ -768,7 +769,7 @@ their defaults. If a keynames is bound t \fBScrollUp\fP < \fBScrollDown\fP > \fBPageUp\fP b ^B ^U -\fBPageDown\fP ^D ^F +\fBPageDown\fP ^D ^F SPACE \fBRedrawScr\fP ^L \fBPostponed\fP ^O \fBMenuFilterSelect\fP ^A @@ -995,7 +996,9 @@ format. .RE .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/newsgroups +.fi .sp .RS This file a copy of the servers newsgroups file which provides short @@ -1013,7 +1016,9 @@ is a short single-line description of th .PP +.nf .IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/serverrc +.fi .sp .RS File to store $\fBNNTPSERVER\fP and $\fBNNTPPORT\fP related @@ -1409,6 +1414,14 @@ are fetched from the server. If \fBgetar will start fetching articles from your first unread minus absolute value of \fBgetart_limit\fP. Default is 0, which means no limit. .TP +.B goto_next_unread +Which keys \fBtin\fP should accept to jump to the next unread article. +Possible is any combination of \fBPageDown\fP and \fBPageNextUnread\fP. +When \fBPageDown\fP is set \fBtin\fP jumps to the next article at the +end of the current one. When \fBPageNextUnread\fP is set \fBtin\fP jumps +immediately to the next article when \fBPageNextUnread\fP ('\fB\fP') +is pressed. Default is PageNextUnread. +.TP .B group_catchup_on_exit If ON catchup group when leaving with the left arrow key. Default is ON. .TP @@ -1629,10 +1642,6 @@ library .BR tin (1) uses to do the normalization. Default is NFKC. .TP -.B pgdn_goto_next -If ON the \fBPageDown\fP keys will go to the next unread article when -pressed at the end of a message. Default is ON. -.TP .B pos_first_unread If ON put cursor at first unread article in group otherwise at last article. Default is ON. @@ -1886,14 +1895,12 @@ the default. The following sort types ar (default). .IP 2 \fBScore (ascending)\fP, sort threads by filtering score ascending. +.IP 3 +\fBLast posting date (descending)\fP, sort threads by date of last posting descending. +.IP 4 +\fBLast posting date (ascending)\fP, sort threads by date of last posting ascending. .RE .TP -.B space_goto_next_unread -SPACE normally acts as a \fBPageDown\fP key and has no effect at the end of -an article. If this option is turned ON the SPACE command will go to the -next unread article when the end of the article is reached (\fBrn\fP -(1)-style pager). -.TP .B spamtrap_warning_addresses Set this option to a list of comma-separated strings to be warned if you are replying to an article by mail where the e-mail address contains one of @@ -1934,11 +1941,6 @@ If \fBstrokes_regex\fP is blank, then .BR tin (1) uses a built-in default. .TP -.B tab_goto_next_unread -If enabled pressing \fBPageNextUnread\fP ('\fB\fP') at the article viewer -level will go to the next unread article immediately instead of first paging -through the current one. Default is ON. -.TP .B tex2iso_conv Decode German style TeX umlaut codes to ISO If ON, show "a as Umlaut-a, etc. Default is OFF. This behavior can also be @@ -2011,7 +2013,7 @@ uses ANSI-colors. Default is OFF. Use scroll keys on keypad. Default is OFF. .TP .B use_mouse -Allows the mouse key support in a +Allows the mouse button support in a .BR xterm (1x) to be enabled/disabled. Default is OFF. @@ -2028,6 +2030,14 @@ and .BR slrnface (1) must be in your $\fBPATH\fP. Default is OFF. .TP +.B verbatim_begin_regex +A regular expression that tin will use to find the begin of a verbatim block. +Default is #v+ +.TP +.B verbatim_end_regex +A regular expression that tin will use to find the end of a verbatim block. +Default is #v- +.TP .B wildcard Allows you to select how .BR tin (1) @@ -2366,7 +2376,6 @@ uses the LIST SUBSCRIPTIONS (\fBRFC2980\ .BR newsoverview (5), .BR overview.fmt (5), .BR innd (8), -.BR RFC977 , .BR RFC1036 , .BR RFC1524 , .BR RFC2045 , @@ -2374,4 +2383,6 @@ uses the LIST SUBSCRIPTIONS (\fBRFC2980\ .BR RFC2047 , .BR RFC2048 , .BR RFC2822 , -.BR RFC2980 +.BR RFC2980 , +.BR RFC3977 , +.BR RFC4643 diff -Nurp tin-1.9.1/include/autoconf.hin tin-1.9.2/include/autoconf.hin --- tin-1.9.1/include/autoconf.hin 2006-03-16 17:22:55.000000000 +0100 +++ tin-1.9.2/include/autoconf.hin 2006-12-22 02:43:23.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-03-16 * Notes : #include files, #defines & struct's * - * Copyright (c) 1995-2006 Thomas Dickey + * Copyright (c) 1995-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/bool.h tin-1.9.2/include/bool.h --- tin-1.9.1/include/bool.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/bool.h 2006-12-22 02:43:23.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-05-16 * Notes : * - * Copyright (c) 1997-2006 Urs Janssen + * Copyright (c) 1997-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/bugrep.h tin-1.9.2/include/bugrep.h --- tin-1.9.1/include/bugrep.h 2006-02-15 22:17:20.000000000 +0100 +++ tin-1.9.2/include/bugrep.h 2006-12-22 02:43:23.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : * - * Copyright (c) 1997-2006 Urs Janssen + * Copyright (c) 1997-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/extern.h tin-1.9.2/include/extern.h --- tin-1.9.1/include/extern.h 2006-03-11 11:29:56.000000000 +0100 +++ tin-1.9.2/include/extern.h 2006-12-22 02:43:23.000000000 +0100 @@ -3,10 +3,10 @@ * Module : extern.h * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-03-11 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1997-2006 Iain Lea + * Copyright (c) 1997-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -395,6 +395,7 @@ extern constext *txt_attrs[]; extern constext *txt_colors[]; #endif /* HAVE_COLOR */ extern constext *txt_confirm_choices[]; +extern constext *txt_goto_next_unread_options[]; extern constext *txt_hide_uue_type[]; extern constext *txt_interactive_mailers[]; extern constext *txt_kill_level_type[]; @@ -882,7 +883,10 @@ extern constext txt_mini_thread_1[]; extern constext txt_mini_thread_2[]; extern constext txt_more[]; extern constext txt_moving[]; +extern constext txt_msgid_line_last[]; extern constext txt_msgid_line_only[]; +extern constext txt_msgid_refs_line[]; +extern constext txt_refs_line_only[]; extern constext txt_name[]; extern constext txt_newsgroup[]; extern constext txt_newsgroup_plural[]; @@ -987,6 +991,7 @@ extern constext txt_reading_newsrc[]; #ifdef NNTP_ABLE extern constext txt_reconnect_to_news_server[]; #endif /* NNTP_ABLE */ +extern constext txt_refs_line_only[]; #ifdef HAVE_GETTIMEOFDAY extern constext txt_remaining[]; #endif /* HAVE_GETTIMEOFDAY */ @@ -1140,6 +1145,7 @@ extern constext txt_usage_verbose[]; extern constext txt_usage_version[]; extern constext txt_useful_without_batch_mode[]; extern constext txt_useful_with_batch_mode[]; +extern constext txt_useless_combination[]; extern constext txt_use_mime[]; extern constext txt_value_out_of_range[]; extern constext txt_view_attachment[]; @@ -1496,6 +1502,7 @@ extern struct opttxt txt_filtering_optio extern struct opttxt txt_force_screen_redraw; extern struct opttxt txt_getart_limit; extern struct opttxt txt_getart_limit_options; +extern struct opttxt txt_goto_next_unread; extern struct opttxt txt_group_catchup_on_exit; extern struct opttxt txt_groupname_max_length; extern struct opttxt txt_hide_uue; @@ -1524,7 +1531,6 @@ extern struct opttxt txt_metamail_prog; extern struct opttxt txt_news_headers_to_display; extern struct opttxt txt_news_headers_to_not_display; extern struct opttxt txt_news_quote_format; -extern struct opttxt txt_pgdn_goto_next; extern struct opttxt txt_pos_first_unread; extern struct opttxt txt_post_8bit_header; extern struct opttxt txt_post_mime_encoding; @@ -1561,7 +1567,6 @@ extern struct opttxt txt_signature_repos extern struct opttxt txt_slashes_regex; extern struct opttxt txt_sort_article_type; extern struct opttxt txt_sort_threads_type; -extern struct opttxt txt_space_goto_next_unread; extern struct opttxt txt_spamtrap_warning_addresses; extern struct opttxt txt_stars_regex; extern struct opttxt txt_start_editor_offset; @@ -1571,7 +1576,6 @@ extern struct opttxt txt_strip_newsrc; extern struct opttxt txt_strip_re_regex; extern struct opttxt txt_strip_was_regex; extern struct opttxt txt_strokes_regex; -extern struct opttxt txt_tab_goto_next_unread; extern struct opttxt txt_tex2iso_conv; extern struct opttxt txt_thread_articles; extern struct opttxt txt_thread_perc; @@ -1582,6 +1586,8 @@ extern struct opttxt txt_unlink_article; extern struct opttxt txt_url_handler; extern struct opttxt txt_url_highlight; extern struct opttxt txt_use_mouse; +extern struct opttxt txt_verbatim_begin_regex; +extern struct opttxt txt_verbatim_end_regex; extern struct opttxt txt_wildcard; extern struct opttxt txt_word_highlight; extern struct opttxt txt_word_h_display_marks; diff -Nurp tin-1.9.1/include/keymap.h tin-1.9.2/include/keymap.h --- tin-1.9.1/include/keymap.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/keymap.h 2006-12-22 02:43:23.000000000 +0100 @@ -3,10 +3,10 @@ * Module : keymap.h * Author : J. Faultless, D. Nimmich * Created : 1999 - * Updated : 2005-10-19 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1999-2006 Jason Faultless + * Copyright (c) 1999-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -263,7 +263,6 @@ enum defined_functions { PAGE_NEXT_THREAD, PAGE_NEXT_UNREAD, PAGE_NEXT_UNREAD_ARTICLE, - PAGE_PAGE_DOWN3, /* special handling at page.c */ #ifdef HAVE_PGP_GPG PAGE_PGP_CHECK_ARTICLE, #endif /* HAVE_PGP_GPG */ diff -Nurp tin-1.9.1/include/newsrc.h tin-1.9.2/include/newsrc.h --- tin-1.9.1/include/newsrc.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/newsrc.h 2006-12-22 02:43:23.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-11-18 * Notes : newsrc bit handling * - * Copyright (c) 1997-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1997-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/nntplib.h tin-1.9.2/include/nntplib.h --- tin-1.9.1/include/nntplib.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/nntplib.h 2006-12-22 02:43:23.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-21 * Notes : nntp.h 1.5.11/1.6 with extensions for tin * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/policy.h tin-1.9.2/include/policy.h --- tin-1.9.1/include/policy.h 2006-04-05 01:28:18.000000000 +0200 +++ tin-1.9.2/include/policy.h 2006-12-22 02:43:24.000000000 +0100 @@ -3,10 +3,10 @@ * Module : policy.h * Author : Ralf Doeblitz * Created : 1999-01-12 - * Updated : 2006-04-05 + * Updated : 2006-08-16 * Notes : #defines and static data for policy configuration * - * Copyright (c) 1999-2006 Ralf Doeblitz + * Copyright (c) 1999-2007 Ralf Doeblitz * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -52,7 +52,7 @@ * .aq Antarctica .ar Argentina * .as American Samoa .at Austria * .au Australia .aw Aruba - * .az Azerbaijan + * .ax Aland .az Azerbaijan * * .ba Bosnia and Herzegowina .bb Barbados * .bd Bangladesh .be Belgium @@ -221,7 +221,6 @@ * .um United States Minor Outlying Islands * * requested new TLDs: - * .ax Aaland-Islands (Finnish; planned for 2006) * .cs Serbia and Montenegro * .ct Catalonia * @@ -234,7 +233,7 @@ static char gnksa_country_codes[26*26] = { /* A B C D E F G H I J K L M N O P Q R S T U V W X Y Z */ -/* A */ 0,0,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 0,1,1,1,1, 1,0,1,0,0,1, +/* A */ 0,0,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 0,1,1,1,1, 1,0,1,1,0,1, /* B */ 1,1,0,1,1, 1,1,1,1,1, 0,0,1,1,1, 0,0,1,1,1, 0,0,1,0,1,1, /* C */ 1,0,1,1,0, 1,1,1,1,0, 1,1,1,1,1, 0,0,1,0,0, 1,1,0,1,1,1, /* D */ 0,0,0,0,1, 0,0,0,0,1, 1,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0,1, @@ -289,8 +288,8 @@ static const char *gnksa_domain_list[] = "travel", /* Travel industry */ /* * more gTLDs to come >=2006, proposed are: - * .asia .mail .kids (.berlin) - * .post .tel .xxx (.sco) + * .asia .kids .mail .post .tel + * (.berlin) (.sco) */ # if 0 /* $DEAD */ "nato", diff -Nurp tin-1.9.1/include/proto.h tin-1.9.2/include/proto.h --- tin-1.9.1/include/proto.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/proto.h 2006-12-22 02:43:24.000000000 +0100 @@ -3,10 +3,10 @@ * Module : proto.h * Author : Urs Janssen * Created : - * Updated : 2005-10-19 + * Updated : 2006-10-01 * Notes : * - * Copyright (c) 1997-2006 Urs Janssen + * Copyright (c) 1997-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -85,7 +85,6 @@ extern void write_attributes_file(const /* charset.c */ extern char *convert_to_printable(char *buf); -extern char *convert_body2printable(char* buf); extern t_bool is_art_tex_encoded(FILE *fp); extern void convert_iso2asc(char *iso, char **asc_buffer, int *max_line_len, int t); extern void convert_tex2iso(char *from, char *to); @@ -436,7 +435,7 @@ extern void get_nntpserver(char *nntpser /* options_menu.c */ extern char *fmt_option_prompt(char *dst, size_t len, t_bool editing, enum option_enum option); -extern int change_config_file(struct t_group *group); +extern void change_config_file(struct t_group *group); extern int option_row(enum option_enum option); extern t_bool option_is_visible(enum option_enum option); extern void check_score_defaults(void); @@ -561,7 +560,6 @@ extern void compose_mail_text_plain(cons /* save.c */ extern int check_start_save_any_news(int function, t_bool catchup); extern t_bool create_path(const char *path); -extern t_bool expand_save_filename(char *outpath, const char *path); extern t_bool post_process_files(t_function proc_type_type, t_bool auto_delete); extern t_bool save_and_process_art(t_openartinfo *artinfo, struct t_article *artptr, t_bool is_mailbox, const char *inpath, int max, t_bool post_process); extern void decode_save_mime(t_openartinfo *art, t_bool postproc); diff -Nurp tin-1.9.1/include/rfc2046.h tin-1.9.2/include/rfc2046.h --- tin-1.9.1/include/rfc2046.h 2006-03-11 13:21:50.000000000 +0100 +++ tin-1.9.2/include/rfc2046.h 2006-12-22 02:43:24.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-05-06 * Notes : rfc2046 MIME article definitions * - * Copyright (c) 2000-2006 Jason Faultless + * Copyright (c) 2000-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/stpwatch.h tin-1.9.2/include/stpwatch.h --- tin-1.9.1/include/stpwatch.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/stpwatch.h 2006-12-22 02:43:24.000000000 +0100 @@ -7,7 +7,7 @@ * Notes : Simple stopwatch routines for timing code using timeb * or gettimeofday structs * - * Copyright (c) 1993-2006 Iain Lea + * Copyright (c) 1993-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/tcurses.h tin-1.9.2/include/tcurses.h --- tin-1.9.1/include/tcurses.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/tcurses.h 2006-12-22 02:43:24.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2004-07-19 * Notes : curses #include files, #defines & struct's * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/tin.h tin-1.9.2/include/tin.h --- tin-1.9.1/include/tin.h 2006-03-11 11:26:22.000000000 +0100 +++ tin-1.9.2/include/tin.h 2006-12-22 02:43:24.000000000 +0100 @@ -3,10 +3,10 @@ * Module : tin.h * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2006-03-11 + * Updated : 2006-10-01 * Notes : #include files, #defines & struct's * - * Copyright (c) 1997-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1997-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -599,8 +599,8 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ #define SHAR_REGEX "\\#(?:!\\s?(?:/usr)?/bin/sh|\\s?(?i)this\\sis\\sa\\sshell\\sarchive)" /* slrn verbatim marks, case sensitive & ^-anchored */ -#define VERBATIM_BEGIN_REGEX "#v+" -#define VERBATIM_END_REGEX "#v-" +#define DEFAULT_VERBATIM_BEGIN_REGEX "#v+" +#define DEFAULT_VERBATIM_END_REGEX "#v-" /* * URL related regexs: @@ -654,7 +654,7 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ #define FILTER_FILE "filter" /* editor offset for filter-file; TODO: doesn't match for german filter-file */ -#define FILTER_FILE_OFFSET 27 +#define FILTER_FILE_OFFSET 26 #define INPUT_HISTORY_FILE ".inputhistory" #ifdef HAVE_MH_MAIL_HANDLING # define MAILGROUPS_FILE "mailgroups" @@ -863,6 +863,13 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ #define TINRC_CONFIRM_SELECT (tinrc.confirm_choice == 2 || tinrc.confirm_choice == 5 || tinrc.confirm_choice == 6 || tinrc.confirm_choice == 7) /* + * defines for tinrc.goto_next_unread + */ +#define NUM_GOTO_NEXT_UNREAD 4 +#define GOTO_NEXT_UNREAD_PGDN 1 +#define GOTO_NEXT_UNREAD_TAB 2 + +/* * MIME Encodings */ enum { @@ -1085,6 +1092,8 @@ enum { #define SORT_THREADS_BY_NOTHING 0 #define SORT_THREADS_BY_SCORE_DESCEND 1 #define SORT_THREADS_BY_SCORE_ASCEND 2 +#define SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND 3 +#define SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND 4 /* * Different values of strip_bogus - the ways to handle bogus groups @@ -1187,15 +1196,11 @@ enum { #define ESC 27 - /* - * return codes for change_config_file () + * filter entrys expire after DEFAULT_FILTER_DAYS */ -#define NO_FILTERING 0 -#define FILTERING 1 #define DEFAULT_FILTER_DAYS 28 - /* * art.thread */ @@ -1420,7 +1425,8 @@ struct t_attribute { 3=from descend, 4=from ascend, 5=date descend, 6=date ascend, 7=score descend, 8=score ascend */ - unsigned sort_threads_type:2; /* 0=none, 1=score descend, 2=score ascend */ + unsigned sort_threads_type:3; /* 0=none, 1=score descend, 2=score ascend, + 3=last posting date descend, 4=last posting date ascend */ unsigned int post_proc_type:2; /* 0=none, 1=shar, 2=uudecode */ unsigned int x_comment_to:1; /* insert X-Comment-To: in Followup */ unsigned int tex2iso_conv:1; /* Convert TeX2ISO */ diff -Nurp tin-1.9.1/include/tinrc.h tin-1.9.2/include/tinrc.h --- tin-1.9.1/include/tinrc.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/tinrc.h 2006-12-22 02:43:24.000000000 +0100 @@ -3,10 +3,10 @@ * Module : tinrc.h * Author : Jason Faultless * Created : 1999-04-13 - * Updated : 2004-06-20 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1999-2006 Jason Faultless + * Copyright (c) 1999-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -117,6 +117,8 @@ struct t_config { char sigfile[PATH_LEN]; char strip_re_regex[LEN]; /* regex used to find and remove 'Re:'-like strings */ char strip_was_regex[LEN]; /* regex used to find and remove '(was:.*'-like strings */ + char verbatim_begin_regex[LEN]; /* regex used to find the begin of a verbatim block */ + char verbatim_end_regex[LEN]; /* regex used to find the end of a verbatim block */ char savedir[PATH_LEN]; /* directory to save articles to */ char spamtrap_warning_addresses[LEN]; char url_handler[LEN]; /* Helper app for opening URL's */ @@ -128,6 +130,7 @@ struct t_config { int default_save_mode; /* Append/Overwrite existing file when saving */ int getart_limit; /* number of article to get */ int recent_time; /* Time limit when article is "fresh" */ + int goto_next_unread; /* jump to next unread article with SPACE|PGDN|TAB */ int groupname_max_length; /* max len of group names to display on screen */ int hide_uue; /* treatment of uuencoded data in pager */ int kill_level; /* Define how killed articles are shown */ @@ -207,7 +210,6 @@ struct t_config { t_bool mail_8bit_header; /* allow 8bit chars. in header of mail message */ t_bool mark_ignore_tags; /* Ignore tags for GROUP_MARK_THREAD_READ/THREAD_MARK_ARTICLE_READ */ t_bool mark_saved_read; /* mark saved article/thread as read */ - t_bool pgdn_goto_next; t_bool pos_first_unread; /* position cursor at first/last unread article */ t_bool post_8bit_header; /* allow 8bit chars. in header when posting to newsgroup */ t_bool post_process_view; /* set TRUE to invoke mailcap viewer app */ @@ -224,11 +226,9 @@ struct t_config { t_bool show_signatures; /* show signatures when displaying articles */ t_bool sigdashes; /* set TRUE to prepend every signature with dashes */ t_bool signature_repost; /* set TRUE to add signature when reposting articles */ - t_bool space_goto_next_unread; t_bool start_editor_offset; t_bool strip_blanks; t_bool strip_newsrc; - t_bool tab_goto_next_unread; t_bool tex2iso_conv; /* convert "a to Umlaut-a */ t_bool thread_catchup_on_exit; /* catchup thread with left arrow key or not */ t_bool unlink_article; diff -Nurp tin-1.9.1/include/tnntp.h tin-1.9.2/include/tnntp.h --- tin-1.9.1/include/tnntp.h 2006-02-15 22:29:28.000000000 +0100 +++ tin-1.9.2/include/tnntp.h 2006-12-22 02:43:24.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : #include files, #defines & struct's * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/trace.h tin-1.9.2/include/trace.h --- tin-1.9.1/include/trace.h 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/include/trace.h 2006-12-22 02:43:24.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2002-11-10 * Notes : Interface of trace.c * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/include/version.h tin-1.9.2/include/version.h --- tin-1.9.1/include/version.h 2006-04-09 18:34:37.000000000 +0200 +++ tin-1.9.2/include/version.h 2007-02-01 15:09:12.733773628 +0100 @@ -3,10 +3,10 @@ * Module : version.h * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,15 +40,15 @@ # define PRODUCT "tin" # ifndef TIN_AUTOCONF_H -# define VERSION "1.9.1" +# define VERSION "1.9.2" # endif /* !TIN_AUTOCONF_H */ -# define RELEASEDATE "20060409" -# define RELEASENAME "Benmore" +# define RELEASEDATE "20070201" +# define RELEASENAME "Dalaruan" /* config-file versions - must by dotted triples */ -# define TINRC_VERSION "1.3.7" +# define TINRC_VERSION "1.3.8" # define ATTRIBUTES_VERSION "1.0.4" # define FILTER_VERSION "1.0.0" -# define KEYMAP_VERSION "1.0.6" +# define KEYMAP_VERSION "1.0.7" # define SERVERCONFIG_VERSION "1.0.0" # ifdef M_UNIX diff -Nurp tin-1.9.1/libcanlock/HOWTO tin-1.9.2/libcanlock/HOWTO --- tin-1.9.1/libcanlock/HOWTO 1970-01-01 01:00:00.000000000 +0100 +++ tin-1.9.2/libcanlock/HOWTO 2006-12-21 14:41:29.000000000 +0100 @@ -0,0 +1,65 @@ +Here are some sort-of plain language descriptions of how to use the +library. + +First, your news posting program needs to generate its own Message-ID +headers. If this isn't already the case, fix that first. + +You will also need to add a facility for storing a user password; see +the included RFCs about recommended lengths. This can be user-generated +or built automatically from random cruft, but however you generate the +password you do have to save it. This password is the only thing that +will allow you to cancel articles later. + +An alternative approach is to generate a unique password for each +article, but then you would need to build a whole little database +monster. + + +POSTING: + +Generate a Message-ID. Now, pass the pointers and lengths of the password +and message id to sha_lock(). It will return a pointer to your cancel lock. +For example: + + fprintf(art, "Message-ID: %s\n", msgid); + fprintf(art, "Cancel-Lock: 1:%s\n", + sha_lock(password, strlen(password), msgid, strlen(msgid)); + + + +CANCELING: + +This time, you use the Message-ID of the article to be canceled. We +use sha_key this time to complete the cycle. + + fprintf(art, "Control: cancel %s\n", msg_can); + fprintf(art, "Cancel-Key: 1:%s\n", + sha_key(password, strlen(password), msgid, strlen(msgid)); + + + +VERIFYING: + +This is purely optional at the newsreader level; only servers should +really need to bother. + +Extract the Cancel-Key: header from the cancel message. Fetch the +original article from the server and extract its Cancel-Lock: header. +Chop off the keywords; we are only interested in the Base-64 thingies. + +- If the original article has no lock (or is missing), you can ignore + the cancel key and use traditional verification, or abort the cancel + operation if you don't want to trust unauthenticated cancels. + +- If the original article has a lock and the cancel has no key, abort + the cancel operation. + +- If both a key and lock are present, strip off the type numbers and + make sure they're both type 1 (the only kind we know how to handle + yet). You can use the lock_strip() function to make this a bit + easier. + +- Finally, you can send pointers to each stripped lock on to + sha_verify(). If it returns zero, your may delete the article. + Remember that there may be more than one lock in the header. Be sure + to check all locks against the key before giving up. diff -Nurp tin-1.9.1/libcanlock/doc/HOWTO tin-1.9.2/libcanlock/doc/HOWTO --- tin-1.9.1/libcanlock/doc/HOWTO 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/libcanlock/doc/HOWTO 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -Here are some sort-of plain language descriptions of how to use the -library. - -First, your news posting program needs to generate its own Message-ID -headers. If this isn't already the case, fix that first. - -You will also need to add a facility for storing a user password; see -the included RFCs about recommended lengths. This can be user-generated -or built automatically from random cruft, but however you generate the -password you do have to save it. This password is the only thing that -will allow you to cancel articles later. - -An alternative approach is to generate a unique password for each -article, but then you would need to build a whole little database -monster. - - -POSTING: - -Generate a Message-ID. Now, pass the pointers and lengths of the password -and message id to sha_lock(). It will return a pointer to your cancel lock. -For example: - - fprintf(art, "Message-ID: %s\n", msgid); - fprintf(art, "Cancel-Lock: 1:%s\n", - sha_lock(password, strlen(password), msgid, strlen(msgid)); - - - -CANCELING: - -This time, you use the Message-ID of the article to be canceled. We -use sha_key this time to complete the cycle. - - fprintf(art, "Control: cancel %s\n", msg_can); - fprintf(art, "Cancel-Key: 1:%s\n", - sha_key(password, strlen(password), msgid, strlen(msgid)); - - - -VERIFYING: - -This is purely optional at the newsreader level; only servers should -really need to bother. - -Extract the Cancel-Key: header from the cancel message. Fetch the -original article from the server and extract its Cancel-Lock: header. -Chop off the keywords; we are only interested in the Base-64 thingies. - -- If the original article has no lock (or is missing), you can ignore - the cancel key and use traditional verification, or abort the cancel - operation if you don't want to trust unauthenticated cancels. - -- If the original article has a lock and the cancel has no key, abort - the cancel operation. - -- If both a key and lock are present, strip off the type numbers and - make sure they're both type 1 (the only kind we know how to handle - yet). You can use the lock_strip() function to make this a bit - easier. - -- Finally, you can send pointers to each stripped lock on to - sha_verify(). If it returns zero, your may delete the article. - Remember that there may be more than one lock in the header. Be sure - to check all locks against the key before giving up. diff -Nurp tin-1.9.1/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt tin-1.9.2/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt --- tin-1.9.1/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,240 +0,0 @@ -USEFOR Working Group S. Lyall -INTERNET-DRAFT September 1998 - Expires March 1999 - - - Cancel-Locks in Usenet articles. - draft-ietf-usefor-cancel-lock-01.txt - - -Status of this memo - - This document is an Internet-Draft. Internet-Drafts are working - documents of the Internet Engineering Task Force (IETF), its areas, - and its working groups. Note that other groups may also distribute - working documents as Internet-Drafts. - - Internet-Drafts are draft documents valid for a maximum of six - months and may be updated, replaced, or obsoleted by other - documents at any time. It is inappropriate to use Internet-Drafts - as reference material or to cite them other than as "work in - progress." - - To view the entire list of current Internet-Drafts, please check - the "1id-abstracts.txt" listing contained in the Internet-Drafts - Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net - (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au - (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu - (US West Coast). - - -Abstract - -This document outlines a method that may be used by authors of successor -(or canceling) articles to authenticate their authorship of the original -article. - -As a proto-article article passes through various agents they may include -the hash of a secret string in a Cancel-Key header. Later if they wish to -use a standard mechanism to remove the original article (eg Cancel or -Supersede) they can include this string in the Cancel-Lock header to -verify that they are entitled to perform this operation. - -Familiarity with the current News Article Format draft [ARTICLE] is -assumed. - - -1. Introduction: The Cancel-Key & Cancel-Lock headers - -These two headers MAY be used by posters, posting agents, moderators and -injecting agents in order to mark articles they process and to verify -canceling , superseding and replacing articles they may subsequently be -issued for those originals. They MUST NOT be altered or created by any -other agents. - -The scheme works by included a "Cancel-Lock: " header and contents in an -article. Further articles that wish to cancel, supersede or replace this -article are required to include a "Cancel-Key: " header which contains -a code-string that when hashed yields one of the code-strings in the -"Cancel-Lock: " header of the original article. - -These headers are intended to be used as a simple method to verify that -the author of a article which removes another one is either the poster, -posting agent, moderator or injecting agent that processed the original -article when it was in its proto-article form. - - -2. Format - - - Cancel-Lock-content = [CFWS] cancel-lock *( CFWS cancel-lock ) [CFWS] - Cancel-Key-content = [CFWS] cancel-key *( CFWS cancel-key ) [CFWS] - cancel-lock = scheme ":" code-string - cancel-key = scheme ":" code-string [ ":" clue-string ] - scheme = 1*base64-octet - code-string = 1*base64-octet - clue-string = 2base64-octet - base64-octet = ALPHA / DIGIT / "+" / "/" / "=" - - -2.1 The "scheme" element - -The scheme is the format that is used to encode the code-string. This -document only defines the scheme of "SHA1" which corresponds to the -SHA1 algorithm [SHA1]. Other schemes MAY be defined by further IETF -standards. - - -2.2 The "code-string" element - -The code-string is a series of base-64-octets. The code-string in a -cancel-lock is the hash of the corresponding code-string in a cancel-key. -The encoding of the binary key or lock is performed in accordance with -the Base64 Transfer Encoding defined in [RFC-2045]. - -Under Scheme "sha1" the code-string element of a cancel-lock is the -output of a hash operation (using the SHA1 algorithm) performed on the -code-string of the cancel-key. - - -2.3 The "clue-string" element - -The clue-string is an optional element that MAY be included in a -cancel-key. It consists of the first two base64-octets of the code-string -of the cancel-lock to which the cancel-key corresponds. - -The clue-string is intended the reduce searching time where multiple -cancel-lock's may be referred to by a single cancel-key. - - - -3. Use - -When an serving agent receives an article that attempts to remove a -previous article via Cancel, Supersedes or Replaces, then if the original -article contains a valid cancel-lock the replacing article MUST contain a -valid cancel-key (or keys) that corresponds to at least one of the -cancel-lock's in the original article. - - -3.1 Adding an initial "Cancel-Lock: " header to a proto-article - -A Cancel-Lock header MAY be added to a proto-article by the poster -or posting agent which will include one or more cancel-locks in its -Cancel-Lock-content. - -If the poster or posting agent does not add a Cancel-Lock header to an -article then an injecting-agent MAY add one provided that it positively -authenticates the author. The injecting-agent MUST NOT add this header -to an article unless it is able to authenticate all cancels, replaces and -supersedes from the poster and automatically add the correct Cancel-Key -header (and content) for such articles. - -Other agents MUST NOT add this header to articles or proto-articles that -they process. - - -3.2 Extending the "Cancel-Lock: " header of a proto-article - -If a "Cancel-Lock: " header has already been added to a proto-article -then any agent (prior to the article being injected) further processing -the proto-article MAY append a single cancel-lock to those already in the -header. - -No more than one cancel-lock SHOULD be added by each agent that -processes the proto-article. - -Once an article in injected then this header MUST NOT be altered. In -particular, relaying agents beyond the injecting agent MUST NOT alter it. - - - -3.3 Adding a "Cancel-Key: " header to a proto-article. - -The Cancel-Key header MAY be added to a proto-article containing a -"Cancel: ", "Replaces: " or "Supersedes: " header by the poster -or posting agent which will include one or more cancel-keys in its -Cancel-Key-content. These cancel-keys will correspond to some or all of -the cancel-locks in articles listed in the "Cancel: " , "Replaces: " and -"Supersedes: " headers. - -If, as mentioned in 3.1 an injecting agent has added a "Cancel-Lock: " -header to an article listed in the "Cancel: " , "Replaces: " or -"Supersedes: " headers then (assuming it authenticates the poster as -being the same as the poster or the original article(s) ) it MUST add a -"Cancel-Key: " header with the cancel-key(s) that correspond to those -article(s). - -Other Agents MUST NOT alter this header. - - - -4. Creating the cancel-lock - -It is suggested that when creating a cancel-lock the function -HMAC(message-id+secret) be used, where HMAC is outlined in [HMAC], -message-id is the message-id of the article and secret is a secret key -held locally. - -This method removes the need for a per-article database containing the -cancel-lock used with every article. - - -5. Security Issues - -General security issues with hash functions are discussed elsewhere, see -the references in [HMAC] for some pointers. The method outlined in -Section 4 is also vulnerable to the secret key being compromised or -guessed. - - -6. Examples - -The following are Cancel-Lock headers along with a Cancel-Key header -that matches them: - -Cancel-Lock: sha1:bNXHc6ohSmeHaRHHW56BIWZJt+4= -Cancel-Key: sha1:aaaBBBcccDDDeeeFFF - -Cancel-Lock: SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s= -Cancel-Key: sha1:chW8hNeDx3iNUsGBU6/ezDk88P4= sha1:4srkWaRIzvK51ArAP:Hc - -Cancel-Lock: sha1:JyEBL4w9/abCBuzCxMIE/E73GM4= - sha1:2Bmg+zWaY1noRiCdy8k3IapwSDU= -Cancel-Key: sha1:K4rkWRjRcXmIzvK51ArAP:Jy - - - -7. References - -[ARTICLE] News Article Format. D Ritter. Internet Draft - draft-ietf-usefor-article-01 . 1998. - -[HMAC] Keyed-Hashing for Message Authentication. H. Krawczyk, M. - Bellare, R. Canetti. February 1997. RFC 2104. - -[SHA1] NIST, FIPS PUB 180-1: Secure Hash Standard, Apr 1995. - -[RFC-2045] MIME, part 1 Freed, Ned; Borenstein, Nathaniel S.: - Multipurpose Internet mail extensions (MIME), part 1: format of - Internet message bodies. RFC 2045, Nov 1996. - - -8. Author's Address - -Simon Lyall -PO Box 6616, -Auckland, -New Zealand. - -Phone: +64 9 358 5067 ext 701 -Email: simon@darkmere.gen.nz - - - - - --- -Simon J. Lyall. | Very Busy | Mail: simon@darkmere.gen.nz -"To stay awake all night adds a day to your life" - Stilgar | MT. - diff -Nurp tin-1.9.1/libcanlock/doc/rfc2104.txt tin-1.9.2/libcanlock/doc/rfc2104.txt --- tin-1.9.1/libcanlock/doc/rfc2104.txt 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/libcanlock/doc/rfc2104.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,619 +0,0 @@ - - - - - - -Network Working Group H. Krawczyk -Request for Comments: 2104 IBM -Category: Informational M. Bellare - UCSD - R. Canetti - IBM - February 1997 - - - HMAC: Keyed-Hashing for Message Authentication - -Status of This Memo - - This memo provides information for the Internet community. This memo - does not specify an Internet standard of any kind. Distribution of - this memo is unlimited. - -Abstract - - This document describes HMAC, a mechanism for message authentication - using cryptographic hash functions. HMAC can be used with any - iterative cryptographic hash function, e.g., MD5, SHA-1, in - combination with a secret shared key. The cryptographic strength of - HMAC depends on the properties of the underlying hash function. - -1. Introduction - - Providing a way to check the integrity of information transmitted - over or stored in an unreliable medium is a prime necessity in the - world of open computing and communications. Mechanisms that provide - such integrity check based on a secret key are usually called - "message authentication codes" (MAC). Typically, message - authentication codes are used between two parties that share a secret - key in order to validate information transmitted between these - parties. In this document we present such a MAC mechanism based on - cryptographic hash functions. This mechanism, called HMAC, is based - on work by the authors [BCK1] where the construction is presented and - cryptographically analyzed. We refer to that work for the details on - the rationale and security analysis of HMAC, and its comparison to - other keyed-hash methods. - - - - - - - - - - - -Krawczyk, et. al. Informational [Page 1] - -RFC 2104 HMAC February 1997 - - - HMAC can be used in combination with any iterated cryptographic hash - function. MD5 and SHA-1 are examples of such hash functions. HMAC - also uses a secret key for calculation and verification of the - message authentication values. The main goals behind this - construction are - - * To use, without modifications, available hash functions. - In particular, hash functions that perform well in software, - and for which code is freely and widely available. - - * To preserve the original performance of the hash function without - incurring a significant degradation. - - * To use and handle keys in a simple way. - - * To have a well understood cryptographic analysis of the strength of - the authentication mechanism based on reasonable assumptions on the - underlying hash function. - - * To allow for easy replaceability of the underlying hash function in - case that faster or more secure hash functions are found or - required. - - This document specifies HMAC using a generic cryptographic hash - function (denoted by H). Specific instantiations of HMAC need to - define a particular hash function. Current candidates for such hash - functions include SHA-1 [SHA], MD5 [MD5], RIPEMD-128/160 [RIPEMD]. - These different realizations of HMAC will be denoted by HMAC-SHA1, - HMAC-MD5, HMAC-RIPEMD, etc. - - Note: To the date of writing of this document MD5 and SHA-1 are the - most widely used cryptographic hash functions. MD5 has been recently - shown to be vulnerable to collision search attacks [Dobb]. This - attack and other currently known weaknesses of MD5 do not compromise - the use of MD5 within HMAC as specified in this document (see - [Dobb]); however, SHA-1 appears to be a cryptographically stronger - function. To this date, MD5 can be considered for use in HMAC for - applications where the superior performance of MD5 is critical. In - any case, implementers and users need to be aware of possible - cryptanalytic developments regarding any of these cryptographic hash - functions, and the eventual need to replace the underlying hash - function. (See section 6 for more information on the security of - HMAC.) - - - - - - - - -Krawczyk, et. al. Informational [Page 2] - -RFC 2104 HMAC February 1997 - - -2. Definition of HMAC - - The definition of HMAC requires a cryptographic hash function, which - we denote by H, and a secret key K. We assume H to be a cryptographic - hash function where data is hashed by iterating a basic compression - function on blocks of data. We denote by B the byte-length of such - blocks (B=64 for all the above mentioned examples of hash functions), - and by L the byte-length of hash outputs (L=16 for MD5, L=20 for - SHA-1). The authentication key K can be of any length up to B, the - block length of the hash function. Applications that use keys longer - than B bytes will first hash the key using H and then use the - resultant L byte string as the actual key to HMAC. In any case the - minimal recommended length for K is L bytes (as the hash output - length). See section 3 for more information on keys. - - We define two fixed and different strings ipad and opad as follows - (the 'i' and 'o' are mnemonics for inner and outer): - - ipad = the byte 0x36 repeated B times - opad = the byte 0x5C repeated B times. - - To compute HMAC over the data `text' we perform - - H(K XOR opad, H(K XOR ipad, text)) - - Namely, - - (1) append zeros to the end of K to create a B byte string - (e.g., if K is of length 20 bytes and B=64, then K will be - appended with 44 zero bytes 0x00) - (2) XOR (bitwise exclusive-OR) the B byte string computed in step - (1) with ipad - (3) append the stream of data 'text' to the B byte string resulting - from step (2) - (4) apply H to the stream generated in step (3) - (5) XOR (bitwise exclusive-OR) the B byte string computed in - step (1) with opad - (6) append the H result from step (4) to the B byte string - resulting from step (5) - (7) apply H to the stream generated in step (6) and output - the result - - For illustration purposes, sample code based on MD5 is provided as an - appendix. - - - - - - - -Krawczyk, et. al. Informational [Page 3] - -RFC 2104 HMAC February 1997 - - -3. Keys - - The key for HMAC can be of any length (keys longer than B bytes are - first hashed using H). However, less than L bytes is strongly - discouraged as it would decrease the security strength of the - function. Keys longer than L bytes are acceptable but the extra - length would not significantly increase the function strength. (A - longer key may be advisable if the randomness of the key is - considered weak.) - - Keys need to be chosen at random (or using a cryptographically strong - pseudo-random generator seeded with a random seed), and periodically - refreshed. (Current attacks do not indicate a specific recommended - frequency for key changes as these attacks are practically - infeasible. However, periodic key refreshment is a fundamental - security practice that helps against potential weaknesses of the - function and keys, and limits the damage of an exposed key.) - -4. Implementation Note - - HMAC is defined in such a way that the underlying hash function H can - be used with no modification to its code. In particular, it uses the - function H with the pre-defined initial value IV (a fixed value - specified by each iterative hash function to initialize its - compression function). However, if desired, a performance - improvement can be achieved at the cost of (possibly) modifying the - code of H to support variable IVs. - - The idea is that the intermediate results of the compression function - on the B-byte blocks (K XOR ipad) and (K XOR opad) can be precomputed - only once at the time of generation of the key K, or before its first - use. These intermediate results are stored and then used to - initialize the IV of H each time that a message needs to be - authenticated. This method saves, for each authenticated message, - the application of the compression function of H on two B-byte blocks - (i.e., on (K XOR ipad) and (K XOR opad)). Such a savings may be - significant when authenticating short streams of data. We stress - that the stored intermediate values need to be treated and protected - the same as secret keys. - - Choosing to implement HMAC in the above way is a decision of the - local implementation and has no effect on inter-operability. - - - - - - - - - -Krawczyk, et. al. Informational [Page 4] - -RFC 2104 HMAC February 1997 - - -5. Truncated output - - A well-known practice with message authentication codes is to - truncate the output of the MAC and output only part of the bits - (e.g., [MM, ANSI]). Preneel and van Oorschot [PV] show some - analytical advantages of truncating the output of hash-based MAC - functions. The results in this area are not absolute as for the - overall security advantages of truncation. It has advantages (less - information on the hash result available to an attacker) and - disadvantages (less bits to predict for the attacker). Applications - of HMAC can choose to truncate the output of HMAC by outputting the t - leftmost bits of the HMAC computation for some parameter t (namely, - the computation is carried in the normal way as defined in section 2 - above but the end result is truncated to t bits). We recommend that - the output length t be not less than half the length of the hash - output (to match the birthday attack bound) and not less than 80 bits - (a suitable lower bound on the number of bits that need to be - predicted by an attacker). We propose denoting a realization of HMAC - that uses a hash function H with t bits of output as HMAC-H-t. For - example, HMAC-SHA1-80 denotes HMAC computed using the SHA-1 function - and with the output truncated to 80 bits. (If the parameter t is not - specified, e.g. HMAC-MD5, then it is assumed that all the bits of the - hash are output.) - -6. Security - - The security of the message authentication mechanism presented here - depends on cryptographic properties of the hash function H: the - resistance to collision finding (limited to the case where the - initial value is secret and random, and where the output of the - function is not explicitly available to the attacker), and the - message authentication property of the compression function of H when - applied to single blocks (in HMAC these blocks are partially unknown - to an attacker as they contain the result of the inner H computation - and, in particular, cannot be fully chosen by the attacker). - - These properties, and actually stronger ones, are commonly assumed - for hash functions of the kind used with HMAC. In particular, a hash - function for which the above properties do not hold would become - unsuitable for most (probably, all) cryptographic applications, - including alternative message authentication schemes based on such - functions. (For a complete analysis and rationale of the HMAC - function the reader is referred to [BCK1].) - - - - - - - - -Krawczyk, et. al. Informational [Page 5] - -RFC 2104 HMAC February 1997 - - - Given the limited confidence gained so far as for the cryptographic - strength of candidate hash functions, it is important to observe the - following two properties of the HMAC construction and its secure use - for message authentication: - - 1. The construction is independent of the details of the particular - hash function H in use and then the latter can be replaced by any - other secure (iterative) cryptographic hash function. - - 2. Message authentication, as opposed to encryption, has a - "transient" effect. A published breaking of a message authentication - scheme would lead to the replacement of that scheme, but would have - no adversarial effect on information authenticated in the past. This - is in sharp contrast with encryption, where information encrypted - today may suffer from exposure in the future if, and when, the - encryption algorithm is broken. - - The strongest attack known against HMAC is based on the frequency of - collisions for the hash function H ("birthday attack") [PV,BCK2], and - is totally impractical for minimally reasonable hash functions. - - As an example, if we consider a hash function like MD5 where the - output length equals L=16 bytes (128 bits) the attacker needs to - acquire the correct message authentication tags computed (with the - _same_ secret key K!) on about 2**64 known plaintexts. This would - require the processing of at least 2**64 blocks under H, an - impossible task in any realistic scenario (for a block length of 64 - bytes this would take 250,000 years in a continuous 1Gbps link, and - without changing the secret key K during all this time). This attack - could become realistic only if serious flaws in the collision - behavior of the function H are discovered (e.g. collisions found - after 2**30 messages). Such a discovery would determine the immediate - replacement of the function H (the effects of such failure would be - far more severe for the traditional uses of H in the context of - digital signatures, public key certificates, etc.). - - Note: this attack needs to be strongly contrasted with regular - collision attacks on cryptographic hash functions where no secret key - is involved and where 2**64 off-line parallelizable (!) operations - suffice to find collisions. The latter attack is approaching - feasibility [VW] while the birthday attack on HMAC is totally - impractical. (In the above examples, if one uses a hash function - with, say, 160 bit of output then 2**64 should be replaced by 2**80.) - - - - - - - - -Krawczyk, et. al. Informational [Page 6] - -RFC 2104 HMAC February 1997 - - - A correct implementation of the above construction, the choice of - random (or cryptographically pseudorandom) keys, a secure key - exchange mechanism, frequent key refreshments, and good secrecy - protection of keys are all essential ingredients for the security of - the integrity verification mechanism provided by HMAC. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Krawczyk, et. al. Informational [Page 7] - -RFC 2104 HMAC February 1997 - - -Appendix -- Sample Code - - For the sake of illustration we provide the following sample code for - the implementation of HMAC-MD5 as well as some corresponding test - vectors (the code is based on MD5 code as described in [MD5]). - -/* -** Function: hmac_md5 -*/ - -void -hmac_md5(text, text_len, key, key_len, digest) -unsigned char* text; /* pointer to data stream */ -int text_len; /* length of data stream */ -unsigned char* key; /* pointer to authentication key */ -int key_len; /* length of authentication key */ -caddr_t digest; /* caller digest to be filled in */ - -{ - MD5_CTX context; - unsigned char k_ipad[65]; /* inner padding - - * key XORd with ipad - */ - unsigned char k_opad[65]; /* outer padding - - * key XORd with opad - */ - unsigned char tk[16]; - int i; - /* if key is longer than 64 bytes reset it to key=MD5(key) */ - if (key_len > 64) { - - MD5_CTX tctx; - - MD5Init(&tctx); - MD5Update(&tctx, key, key_len); - MD5Final(tk, &tctx); - - key = tk; - key_len = 16; - } - - /* - * the HMAC_MD5 transform looks like: - * - * MD5(K XOR opad, MD5(K XOR ipad, text)) - * - * where K is an n byte key - * ipad is the byte 0x36 repeated 64 times - - - -Krawczyk, et. al. Informational [Page 8] - -RFC 2104 HMAC February 1997 - - - * opad is the byte 0x5c repeated 64 times - * and text is the data being protected - */ - - /* start out by storing key in pads */ - bzero( k_ipad, sizeof k_ipad); - bzero( k_opad, sizeof k_opad); - bcopy( key, k_ipad, key_len); - bcopy( key, k_opad, key_len); - - /* XOR key with ipad and opad values */ - for (i=0; i<64; i++) { - k_ipad[i] ^= 0x36; - k_opad[i] ^= 0x5c; - } - /* - * perform inner MD5 - */ - MD5Init(&context); /* init context for 1st - * pass */ - MD5Update(&context, k_ipad, 64) /* start with inner pad */ - MD5Update(&context, text, text_len); /* then text of datagram */ - MD5Final(digest, &context); /* finish up 1st pass */ - /* - * perform outer MD5 - */ - MD5Init(&context); /* init context for 2nd - * pass */ - MD5Update(&context, k_opad, 64); /* start with outer pad */ - MD5Update(&context, digest, 16); /* then results of 1st - * hash */ - MD5Final(digest, &context); /* finish up 2nd pass */ -} - -Test Vectors (Trailing '\0' of a character string not included in test): - - key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b - key_len = 16 bytes - data = "Hi There" - data_len = 8 bytes - digest = 0x9294727a3638bb1c13f48ef8158bfc9d - - key = "Jefe" - data = "what do ya want for nothing?" - data_len = 28 bytes - digest = 0x750c783e6ab0b503eaa86e310a5db738 - - key = 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - - - -Krawczyk, et. al. Informational [Page 9] - -RFC 2104 HMAC February 1997 - - - key_len 16 bytes - data = 0xDDDDDDDDDDDDDDDDDDDD... - ..DDDDDDDDDDDDDDDDDDDD... - ..DDDDDDDDDDDDDDDDDDDD... - ..DDDDDDDDDDDDDDDDDDDD... - ..DDDDDDDDDDDDDDDDDDDD - data_len = 50 bytes - digest = 0x56be34521d144c88dbb8c733f0e8b3f6 - -Acknowledgments - - Pau-Chen Cheng, Jeff Kraemer, and Michael Oehler, have provided - useful comments on early drafts, and ran the first interoperability - tests of this specification. Jeff and Pau-Chen kindly provided the - sample code and test vectors that appear in the appendix. Burt - Kaliski, Bart Preneel, Matt Robshaw, Adi Shamir, and Paul van - Oorschot have provided useful comments and suggestions during the - investigation of the HMAC construction. - -References - - [ANSI] ANSI X9.9, "American National Standard for Financial - Institution Message Authentication (Wholesale)," American - Bankers Association, 1981. Revised 1986. - - [Atk] Atkinson, R., "IP Authentication Header", RFC 1826, August - 1995. - - [BCK1] M. Bellare, R. Canetti, and H. Krawczyk, - "Keyed Hash Functions and Message Authentication", - Proceedings of Crypto'96, LNCS 1109, pp. 1-15. - (http://www.research.ibm.com/security/keyed-md5.html) - - [BCK2] M. Bellare, R. Canetti, and H. Krawczyk, - "Pseudorandom Functions Revisited: The Cascade Construction", - Proceedings of FOCS'96. - - [Dobb] H. Dobbertin, "The Status of MD5 After a Recent Attack", - RSA Labs' CryptoBytes, Vol. 2 No. 2, Summer 1996. - http://www.rsa.com/rsalabs/pubs/cryptobytes.html - - [PV] B. Preneel and P. van Oorschot, "Building fast MACs from hash - functions", Advances in Cryptology -- CRYPTO'95 Proceedings, - Lecture Notes in Computer Science, Springer-Verlag Vol.963, - 1995, pp. 1-14. - - [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", - RFC 1321, April 1992. - - - -Krawczyk, et. al. Informational [Page 10] - -RFC 2104 HMAC February 1997 - - - [MM] Meyer, S. and Matyas, S.M., Cryptography, New York Wiley, - 1982. - - [RIPEMD] H. Dobbertin, A. Bosselaers, and B. Preneel, "RIPEMD-160: A - strengthened version of RIPEMD", Fast Software Encryption, - LNCS Vol 1039, pp. 71-82. - ftp://ftp.esat.kuleuven.ac.be/pub/COSIC/bosselae/ripemd/. - - [SHA] NIST, FIPS PUB 180-1: Secure Hash Standard, April 1995. - - [Tsu] G. Tsudik, "Message authentication with one-way hash - functions", In Proceedings of Infocom'92, May 1992. - (Also in "Access Control and Policy Enforcement in - Internetworks", Ph.D. Dissertation, Computer Science - Department, University of Southern California, April 1991.) - - [VW] P. van Oorschot and M. Wiener, "Parallel Collision - Search with Applications to Hash Functions and Discrete - Logarithms", Proceedings of the 2nd ACM Conf. Computer and - Communications Security, Fairfax, VA, November 1994. - -Authors' Addresses - - Hugo Krawczyk - IBM T.J. Watson Research Center - P.O.Box 704 - Yorktown Heights, NY 10598 - - EMail: hugo@watson.ibm.com - - Mihir Bellare - Dept of Computer Science and Engineering - Mail Code 0114 - University of California at San Diego - 9500 Gilman Drive - La Jolla, CA 92093 - - EMail: mihir@cs.ucsd.edu - - Ran Canetti - IBM T.J. Watson Research Center - P.O.Box 704 - Yorktown Heights, NY 10598 - - EMail: canetti@watson.ibm.com - - - - - - -Krawczyk, et. al. Informational [Page 11] - diff -Nurp tin-1.9.1/libcanlock/doc/rfc2202.txt tin-1.9.2/libcanlock/doc/rfc2202.txt --- tin-1.9.1/libcanlock/doc/rfc2202.txt 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/libcanlock/doc/rfc2202.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,508 +0,0 @@ - - - - - - -Network Working Group P. Cheng -Request for Comments: 2202 IBM -Category: Informational R. Glenn - NIST - September 1997 - - - Test Cases for HMAC-MD5 and HMAC-SHA-1 - -Status of This Memo - - This memo provides information for the Internet community. This memo - does not specify an Internet standard of any kind. Distribution of - this memo is unlimited. - -Abstract - - This document provides two sets of test cases for HMAC-MD5 and HMAC- - SHA-1, respectively. HMAC-MD5 and HMAC-SHA-1 are two constructs of - the HMAC [HMAC] message authentication function using the MD5 [MD5] - hash function and the SHA-1 [SHA] hash function. Both constructs are - used by IPSEC [OG,CG] and other protocols to authenticate messages. - The test cases and results provided in this document are meant to be - used as a conformance test for HMAC-MD5 and HMAC-SHA-1 - implementations. - -1. Introduction - - The general method for constructing a HMAC message authentication - function using a particular hash function is described in section 2 - of [HMAC]. We will not repeat the description here. Section 5 of - [HMAC] also discusses truncating the output of HMAC; the rule is that - we should keep the more significant bits (the bits in the left, - assuming a network byte order (big-endian)). - - In sections 2 and 3 we provide test cases for HMAC-MD5 and HMAC-SHA- - 1, respectively. Each case includes the key, the data, and the - result. The values of keys and data are either hexadecimal numbers - (prefixed by "0x") or ASCII character strings in double quotes. If a - value is an ASCII character string, then the HMAC computation for the - corresponding test case DOES NOT include the trailing null character - ('\0') in the string. - - - - - - - - - -Cheng & Glenn Informational [Page 1] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - - The C source code of the functions used to generate HMAC-SHA-1 - results is listed in the Appendix. Note that these functions are - meant to be simple and easy to understand; they are not optimized in - any way. The C source code for computing HMAC-MD5 can be found in - [MD5]; or you can do a simple modification to HMAC-SHA-1 code to get - HMAC-MD5 code, as explained in the Appendix. - - The test cases in this document are cross-verified by three - independent implementations, one from NIST and two from IBM Research. - One IBM implementation uses optimized code that is very different - from the code in the Appendix. An implemenation that concurs with the - results provided in this document should be interoperable with other - similar implemenations. We do not claim that such an implementation - is absolutely correct with respect to the HMAC definition in [HMAC]. - -2. Test Cases for HMAC-MD5 - -test_case = 1 -key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -key_len = 16 -data = "Hi There" -data_len = 8 -digest = 0x9294727a3638bb1c13f48ef8158bfc9d - -test_case = 2 -key = "Jefe" -key_len = 4 -data = "what do ya want for nothing?" -data_len = 28 -digest = 0x750c783e6ab0b503eaa86e310a5db738 - -test_case = 3 -key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -key_len 16 -data = 0xdd repeated 50 times -data_len = 50 -digest = 0x56be34521d144c88dbb8c733f0e8b3f6 - -test_case = 4 -key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819 -key_len 25 -data = 0xcd repeated 50 times -data_len = 50 -digest = 0x697eaf0aca3a3aea3a75164746ffaa79 - - - - - - - -Cheng & Glenn Informational [Page 2] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - -test_case = 5 -key = 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c -key_len = 16 -data = "Test With Truncation" -data_len = 20 -digest = 0x56461ef2342edc00f9bab995690efd4c -digest-96 0x56461ef2342edc00f9bab995 - -test_case = 6 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key - Hash Key First" -data_len = 54 -digest = 0x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd - -test_case = 7 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key and Larger - Than One Block-Size Data" -data_len = 73 -digest = 0x6f630fad67cda0ee1fb1f562db3aa53e - -3. Test Cases for HMAC-SHA-1 - -test_case = 1 -key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -key_len = 20 -data = "Hi There" -data_len = 8 -digest = 0xb617318655057264e28bc0b6fb378c8ef146be00 - -test_case = 2 -key = "Jefe" -key_len = 4 -data = "what do ya want for nothing?" -data_len = 28 -digest = 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79 - -test_case = 3 -key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -key_len = 20 -data = 0xdd repeated 50 times -data_len = 50 -digest = 0x125d7342b9ac11cd91a39af48aa17b4f63f175d3 - - - - - - -Cheng & Glenn Informational [Page 3] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - -test_case = 4 -key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819 -key_len = 25 -data = 0xcd repeated 50 times -data_len = 50 -digest = 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da - -test_case = 5 -key = 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c -key_len = 20 -data = "Test With Truncation" -data_len = 20 -digest = 0x4c1a03424b55e07fe7f27be1d58bb9324a9a5a04 -digest-96 = 0x4c1a03424b55e07fe7f27be1 - -test_case = 6 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key - Hash Key First" -data_len = 54 -digest = 0xaa4ae5e15272d00e95705637ce8a3b55ed402112 - -test_case = 7 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key and Larger - Than One Block-Size Data" -data_len = 73 -digest = 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91 -data_len = 20 -digest = 0x4c1a03424b55e07fe7f27be1d58bb9324a9a5a04 -digest-96 = 0x4c1a03424b55e07fe7f27be1 - -test_case = 6 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key - Hash Key -First" -data_len = 54 -digest = 0xaa4ae5e15272d00e95705637ce8a3b55ed402112 - -test_case = 7 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key and Larger - Than One Block-Size Data" -data_len = 73 -digest = 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91 - - - - -Cheng & Glenn Informational [Page 4] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - -4. Security Considerations - - This docuemnt raises no security issues. Discussion on the strength - of the HMAC construction can be found in [HMAC]. - -References - - [HMAC] Krawczyk, H., Bellare, M., and R. Canetti, - "HMAC: Keyed-Hashing for Message Authentication", - RFC 2104, February 1997. - - [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", - RFC 1321, April 1992. - - [SHA] NIST, FIPS PUB 180-1: Secure Hash Standard, April 1995. - - [OG] Oehler, M., and R. Glenn, - "HMAC-MD5 IP Authentication with Replay Prevention", - RFC 2085, February 1997. - - [CG] Chang, S., and R. Glenn, - "HMAC-SHA IP Authentication with Replay Prevention", - Work in Progress. - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Cheng & Glenn Informational [Page 5] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - -Authors' Addresses - - Pau-Chen Cheng - IBM T.J. Watson Research Center - P.O.Box 704 - Yorktown Heights, NY 10598 - - EMail: pau@watson.ibm.com - - - Robert Glenn - NIST - Building 820, Room 455 - Gaithersburg, MD 20899 - - EMail: rob.glenn@nist.gov - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Cheng & Glenn Informational [Page 6] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - -Appendix - - This appendix contains the C reference code which implements HMAC- - SHA-1 using an existing SHA-1 library. It assumes that the SHA-1 - library has similar API's as those of the MD5 code described in RFC - 1321. The code for HMAC-MD5 is similar, just replace the strings - "SHA" and "sha" with "MD5" and "md5". HMAC-MD5 code is also listed in - RFC 2104. - - #ifndef SHA_DIGESTSIZE - #define SHA_DIGESTSIZE 20 - #endif - - #ifndef SHA_BLOCKSIZE - #define SHA_BLOCKSIZE 64 - #endif - - #ifndef MD5_DIGESTSIZE - #define MD5_DIGESTSIZE 16 - #endif - - #ifndef MD5_BLOCKSIZE - #define MD5_BLOCKSIZE 64 - #endif - - /* Function to print the digest */ - void - pr_sha(FILE* fp, char* s, int t) - { - int i ; - - fprintf(fp, "0x") ; - for (i = 0 ; i < t ; i++) - fprintf(fp, "%02x", s[i]) ; - fprintf(fp, "0) ; - } - - void truncate - ( - char* d1, /* data to be truncated */ - char* d2, /* truncated data */ - int len /* length in bytes to keep */ - ) - { - int i ; - for (i = 0 ; i < len ; i++) d2[i] = d1[i]; - } - - - - -Cheng & Glenn Informational [Page 7] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - - /* Function to compute the digest */ - void - hmac_sha - ( - char* k, /* secret key */ - int lk, /* length of the key in bytes */ - char* d, /* data */ - int ld, /* length of data in bytes */ - char* out, /* output buffer, at least "t" bytes */ - int t - ) - { - SHA_CTX ictx, octx ; - char isha[SHA_DIGESTSIZE], osha[SHA_DIGESTSIZE] ; - char key[SHA_DIGESTSIZE] ; - char buf[SHA_BLOCKSIZE] ; - int i ; - - if (lk > SHA_BLOCKSIZE) { - - SHA_CTX tctx ; - - SHAInit(&tctx) ; - SHAUpdate(&tctx, k, lk) ; - SHAFinal(key, &tctx) ; - - k = key ; - lk = SHA_DIGESTSIZE ; - } - - /**** Inner Digest ****/ - - SHAInit(&ictx) ; - - /* Pad the key for inner digest */ - for (i = 0 ; i < lk ; ++i) buf[i] = k[i] ^ 0x36 ; - for (i = lk ; i < SHA_BLOCKSIZE ; ++i) buf[i] = 0x36 ; - - SHAUpdate(&ictx, buf, SHA_BLOCKSIZE) ; - SHAUpdate(&ictx, d, ld) ; - - SHAFinal(isha, &ictx) ; - - /**** Outter Digest ****/ - - SHAInit(&octx) ; - - /* Pad the key for outter digest */ - - - -Cheng & Glenn Informational [Page 8] - -RFC 2202 Test Cases for HMAC-MD5 and HMAC-SHA-1 September 1997 - - - for (i = 0 ; i < lk ; ++i) buf[i] = k[i] ^ 0x5C ; - for (i = lk ; i < SHA_BLOCKSIZE ; ++i) buf[i] = 0x5C ; - - SHAUpdate(&octx, buf, SHA_BLOCKSIZE) ; - SHAUpdate(&octx, isha, SHA_DIGESTSIZE) ; - - SHAFinal(osha, &octx) ; - - /* truncate and print the results */ - t = t > SHA_DIGESTSIZE ? SHA_DIGESTSIZE : t ; - truncate(osha, out, t) ; - pr_sha(stdout, out, t) ; - - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Cheng & Glenn Informational [Page 9] - diff -Nurp tin-1.9.1/libcanlock/doc/rfc2286.txt tin-1.9.2/libcanlock/doc/rfc2286.txt --- tin-1.9.1/libcanlock/doc/rfc2286.txt 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/libcanlock/doc/rfc2286.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,396 +0,0 @@ - - - - - - -Network Working Group J. Kapp -Request for Comments: 2286 Reaper Technologies -Category: Informational February 1998 - - - Test Cases for HMAC-RIPEMD160 and HMAC-RIPEMD128 - -Status of this Memo - - This memo provides information for the Internet community. It does - not specify an Internet standard of any kind. Distribution of this - memo is unlimited. - -Copyright Notice - - Copyright (C) The Internet Society (1998). All Rights Reserved. - -Abstract - - This document provides two sets of test cases for HMAC-RIPEMD160 and - HMAC-RIPEMD128, respectively. HMAC-RIPEMD160 and HMAC-RIPEMD128 are - two constructs of the HMAC [HMAC] message authentication function - using the RIPEMD-160 and RIPEMD-128 [RIPE] hash functions. The test - cases and results provided in this document are meant to be used as a - conformance test for HMAC-RIPEMD160 and HMAC-RIPEMD128 - implementations. - -1. Introduction - - The general method for constructing a HMAC message authentication - function using a particular hash function is described in section 2 - of [HMAC]. - - In sections 2 and 3 test cases for HMAC-RIPEMD160 and HMAC-RIPEMD128, - respectively are provided. Each case includes the key, the data, and - the result. The values of keys and data are either hexadecimal - numbers (prefixed by "0x") or ASCII character strings in double - quotes. If a value is an ASCII character string, then the HMAC - computation for the corresponding test case DOES NOT include the - trailing null character ('\0') in the string. - - The C source code of the functions used to generate HMAC-RIPEMD160 - and HMAC-RIPEMD128 results is listed in the Appendix. Please Note - that the functions provided are implemented in such a way as to be - simple and easy to understand as a result they are not optimized in - any way. The C source code for computing HMAC-MD5 can be found in - [MD5]. - - - - -Kapp Informational [Page 1] - -RFC 2286 Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128 February 1998 - - -2. Test Cases for HMAC-RIPEMD160 - -test_case = 1 -key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -key_len = 20 -data = "Hi There" -data_len = 8 -digest = 0x24cb4bd67d20fc1a5d2ed7732dcc39377f0a5668 - -test_case = 2 -key = "Jefe" -key_len = 4 -data = "what do ya want for nothing?" -data_len = 28 -digest = 0xdda6c0213a485a9e24f4742064a7f033b43c4069 - -test_case = 3 -key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -key_len = 20 -data = 0xdd repeated 50 times -data_len = 50 -digest = 0xb0b105360de759960ab4f35298e116e295d8e7c1 - -test_case = 4 -key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819 -key_len = 25 -data = 0xcd repeated 50 times -data_len = 50 -digest = 0xd5ca862f4d21d5e610e18b4cf1beb97a4365ecf4 - -test_case = 5 -key = 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c -key_len = 20 -data = "Test With Truncation" -data_len = 20 -digest = 0x7619693978f91d90539ae786500ff3d8e0518e39 -digest-96 = 0x7619693978f91d90539ae786 - -test_case = 6 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key - Hash Key - First" -data_len = 54 -digest = 0x6466ca07ac5eac29e1bd523e5ada7605b791fd8b - -test_case = 7 -key = 0xaa repeated 80 times - - - -Kapp Informational [Page 2] - -RFC 2286 Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128 February 1998 - - -key_len = 80 -data = "Test Using Larger Than Block-Size Key and Larger - Than One Block-Size Data" -data_len = 73 -digest = 0x69ea60798d71616cce5fd0871e23754cd75d5a0a - -3. Test Cases for HMAC-RIPEMD128 - -test_case = 1 -key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -key_len = 16 -data = "Hi There" -data_len = 8 -digest = 0xfbf61f9492aa4bbf81c172e84e0734db - -test_case = 2 -key = "Jefe" -key_len = 4 -data = "what do ya want for nothing?" -data_len = 28 -digest = 0x875f828862b6b334b427c55f9f7ff09b - -test_case = 3 -key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -key_len = 16 -data = 0xdd repeated 50 times -data_len = 50 -digest = 0x09f0b2846d2f543da363cbec8d62a38d - -test_case = 4 -key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819 -key_len = 25 -data = 0xcd repeated 50 times -data_len = 50 -digest = 0xbdbbd7cf03e44b5aa60af815be4d2294 - -test_case = 5 -key = 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c -key_len = 16 -data = "Test With Truncation" -data_len = 20 -digest = 0xe79808f24b25fd031c155f0d551d9a3a -digest-96 = 0xe79808f24b25fd031c155f0d - -test_case = 6 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key - Hash Key - - - -Kapp Informational [Page 3] - -RFC 2286 Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128 February 1998 - - - First" -data_len = 54 -digest = 0xdc732928de98104a1f59d373c150acbb - -test_case = 7 -key = 0xaa repeated 80 times -key_len = 80 -data = "Test Using Larger Than Block-Size Key and Larger - Than One Block-Size Data" -data_len = 73 -digest = 0x5c6bec96793e16d40690c237635f30c5 - -4. Security Considerations - - This document raises no security issues. Discussion on the strength - of the HMAC construction can be found in [HMAC]. - -References - - [HMAC] Krawczyk, H., Bellare, M., and R. Canetti, - "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, - February 1997. - - [MD5] Rivest, R., "The MD5 Message-Digest Algorithm", - RFC 1321, April 1992. - - [OG] Oehler, M., and R. Glenn, - "HMAC-MD5 IP Authentication with Replay Prevention", RFC - 2085, February 1997 - - [CG] Chang, S., and R. Glenn, - "Test Cases for HMAC-MD5 and HMAC-SHA-1", RFC 2202, - September 1997. - - [RIPE] Dobbertin, H., Bosselaers A., and Preneel, B. - "RIPEMD-160: A Strengthened Version of RIPEMD" April 1996 - -Author's Address - - Justin S. Kapp - Reaper Technologies - The Post Office, Dunsop Bridge - Clitheroe, Lancashire. - BB7 3BB. United Kingdom - - EMail: skapp@reapertech.com - - - - - -Kapp Informational [Page 4] - -RFC 2286 Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128 February 1998 - - -Appendix - - This code which implements HMAC-RIPEMD160 using an existing RIPEMD- - 160 library. It assumes that the RIPEMD-160 library has similar - API's as those of the MD5 code described in RFC 1321. The code for - HMAC-MD5, is similar, this HMAC-MD5 code is also listed in RFC 2104. - To adapt this example to produce the HMAC-RIPEMD128 then replace each - occurance of 'RMD160' with 'RMD128'. - -#ifndef RMD160_DIGESTSIZE -#define RMD160_DIGESTSIZE 20 -#endif - -#ifndef RMD128_DIGESTSIZE -#define RMD128_DIGESTSIZE 16 -#endif - - -/* HMAC_RMD160 implements HMAC-RIPEMD160 */ - -void HMAC_RMD160(input, len, key, keylen, digest) -unsigned char *input; /* pointer to data stream */ -int len; /* length of data stream */ -unsigned char *key; /* pointer to authentication key */ -int keylen; /* length of authentication key */ -unsigned char *digest; /* resulting MAC digest */ -{ - RMD160_CTX context; - unsigned char k_ipad[65]; /* inner padding - key XORd with ipad */ - unsigned char k_opad[65]; /* outer padding - key XORd with opad */ - unsigned char tk[RMD160_DIGESTSIZE]; - int i; - - /* if key is longer than 64 bytes reset it to key=SHA1(key) */ - if (keylen > 64) { - RMD160_CTX tctx; - - RMD160Init(&tctx); - RMD160Update(&tctx, key, keylen); - RMD160Final(tk, &tctx); - - key = tk; - keylen = RMD160_DIGESTSIZE; - } - - /* The HMAC_SHA1 transform looks like: - - RMD160(K XOR opad, RMD160(K XOR ipad, text)) - - - -Kapp Informational [Page 5] - -RFC 2286 Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128 February 1998 - - - - where K is an n byte key - ipad is the byte 0x36 repeated 64 times - opad is the byte 0x5c repeated 64 times - and text is the data being protected */ - - /* start out by storing key in pads */ - memset(k_ipad, 0x36, sizeof(k_ipad)); - memset(k_opad, 0x5c, sizeof(k_opad)); - - /* XOR key with ipad and opad values */ - for (i=0; i and in Windows + builds of pcretest, and changed the call to _setmode() to use _O_BINARY + instead of 0x8000. Made all the #ifdefs test both _WIN32 and WIN32 (not all + of them did). + +10. Originally, pcretest opened its input and output without "b"; then I was + told that "b" was needed in some environments, so it was added for release + 5.0 to both the input and output. (It makes no difference on Unix-like + systems.) Later I was told that it is wrong for the input on Windows. I've + now abstracted the modes into two macros, to make it easier to fiddle with + them, and removed "b" from the input mode under Windows. + +11. Added pkgconfig support for the C++ wrapper library, libpcrecpp. + +12. Added -help and --help to pcretest as an official way of being reminded + of the options. + +13. Removed some redundant semicolons after macro calls in pcrecpparg.h.in + and pcrecpp.cc because they annoy compilers at high warning levels. + +14. A bit of tidying/refactoring in pcre_exec.c in the main bumpalong loop. + +15. Fixed an occurrence of == in configure.ac that should have been = (shell + scripts are not C programs :-) and which was not noticed because it works + on Linux. + +16. pcretest is supposed to handle any length of pattern and data line (as one + line or as a continued sequence of lines) by extending its input buffer if + necessary. This feature was broken for very long pattern lines, leading to + a string of junk being passed to pcre_compile() if the pattern was longer + than about 50K. + +17. I have done a major re-factoring of the way pcre_compile() computes the + amount of memory needed for a compiled pattern. Previously, there was code + that made a preliminary scan of the pattern in order to do this. That was + OK when PCRE was new, but as the facilities have expanded, it has become + harder and harder to keep it in step with the real compile phase, and there + have been a number of bugs (see for example, 4 above). I have now found a + cunning way of running the real compile function in a "fake" mode that + enables it to compute how much memory it would need, while actually only + ever using a few hundred bytes of working memory and without too many + tests of the mode. This should make future maintenance and development + easier. A side effect of this work is that the limit of 200 on the nesting + depth of parentheses has been removed (though this was never a serious + limitation, I suspect). However, there is a downside: pcre_compile() now + runs more slowly than before (30% or more, depending on the pattern). I + hope this isn't a big issue. There is no effect on runtime performance. + +18. Fixed a minor bug in pcretest: if a pattern line was not terminated by a + newline (only possible for the last line of a file) and it was a + pattern that set a locale (followed by /Lsomething), pcretest crashed. + +19. Added additional timing features to pcretest. (1) The -tm option now times + matching only, not compiling. (2) Both -t and -tm can be followed, as a + separate command line item, by a number that specifies the number of + repeats to use when timing. The default is 50000; this gives better + precision, but takes uncomfortably long for very large patterns. + +20. Extended pcre_study() to be more clever in cases where a branch of a + subpattern has no definite first character. For example, (a*|b*)[cd] would + previously give no result from pcre_study(). Now it recognizes that the + first character must be a, b, c, or d. + +21. There was an incorrect error "recursive call could loop indefinitely" if + a subpattern (or the entire pattern) that was being tested for matching an + empty string contained only one non-empty item after a nested subpattern. + For example, the pattern (?>\x{100}*)\d(?R) provoked this error + incorrectly, because the \d was being skipped in the check. + +22. The pcretest program now has a new pattern option /B and a command line + option -b, which is equivalent to adding /B to every pattern. This causes + it to show the compiled bytecode, without the additional information that + -d shows. The effect of -d is now the same as -b with -i (and similarly, /D + is the same as /B/I). + +23. A new optimization is now able automatically to treat some sequences such + as a*b as a*+b. More specifically, if something simple (such as a character + or a simple class like \d) has an unlimited quantifier, and is followed by + something that cannot possibly match the quantified thing, the quantifier + is automatically "possessified". + +24. A recursive reference to a subpattern whose number was greater than 39 + went wrong under certain circumstances in UTF-8 mode. This bug could also + have affected the operation of pcre_study(). + +25. Realized that a little bit of performance could be had by replacing + (c & 0xc0) == 0xc0 with c >= 0xc0 when processing UTF-8 characters. + +26. Timing data from pcretest is now shown to 4 decimal places instead of 3. + +27. Possessive quantifiers such as a++ were previously implemented by turning + them into atomic groups such as ($>a+). Now they have their own opcodes, + which improves performance. This includes the automatically created ones + from 23 above. + +28. A pattern such as (?=(\w+))\1: which simulates an atomic group using a + lookahead was broken if it was not anchored. PCRE was mistakenly expecting + the first matched character to be a colon. This applied both to named and + numbered groups. + +29. The ucpinternal.h header file was missing its idempotency #ifdef. + +30. I was sent a "project" file called libpcre.a.dev which I understand makes + building PCRE on Windows easier, so I have included it in the distribution. + +31. There is now a check in pcretest against a ridiculously large number being + returned by pcre_exec() or pcre_dfa_exec(). If this happens in a /g or /G + loop, the loop is abandoned. + +32. Forward references to subpatterns in conditions such as (?(2)...) where + subpattern 2 is defined later cause pcre_compile() to search forwards in + the pattern for the relevant set of parentheses. This search went wrong + when there were unescaped parentheses in a character class, parentheses + escaped with \Q...\E, or parentheses in a #-comment in /x mode. + +33. "Subroutine" calls and backreferences were previously restricted to + referencing subpatterns earlier in the regex. This restriction has now + been removed. + +34. Added a number of extra features that are going to be in Perl 5.10. On the + whole, these are just syntactic alternatives for features that PCRE had + previously implemented using the Python syntax or my own invention. The + other formats are all retained for compatibility. + + (a) Named groups can now be defined as (?...) or (?'name'...) as well + as (?P...). The new forms, as well as being in Perl 5.10, are + also .NET compatible. + + (b) A recursion or subroutine call to a named group can now be defined as + (?&name) as well as (?P>name). + + (c) A backreference to a named group can now be defined as \k or + \k'name' as well as (?P=name). The new forms, as well as being in Perl + 5.10, are also .NET compatible. + + (d) A conditional reference to a named group can now use the syntax + (?() or (?('name') as well as (?(name). + + (e) A "conditional group" of the form (?(DEFINE)...) can be used to define + groups (named and numbered) that are never evaluated inline, but can be + called as "subroutines" from elsewhere. In effect, the DEFINE condition + is always false. There may be only one alternative in such a group. + + (f) A test for recursion can be given as (?(R1).. or (?(R&name)... as well + as the simple (?(R). The condition is true only if the most recent + recursion is that of the given number or name. It does not search out + through the entire recursion stack. + + (g) The escape \gN or \g{N} has been added, where N is a positive or + negative number, specifying an absolute or relative reference. + +35. Tidied to get rid of some further signed/unsigned compiler warnings and + some "unreachable code" warnings. + +36. Updated the Unicode property tables to Unicode version 5.0.0. Amongst other + things, this adds five new scripts. + +37. Perl ignores orphaned \E escapes completely. PCRE now does the same. + There were also incompatibilities regarding the handling of \Q..\E inside + character classes, for example with patterns like [\Qa\E-\Qz\E] where the + hyphen was adjacent to \Q or \E. I hope I've cleared all this up now. + +38. Like Perl, PCRE detects when an indefinitely repeated parenthesized group + matches an empty string, and forcibly breaks the loop. There were bugs in + this code in non-simple cases. For a pattern such as ^(a()*)* matched + against aaaa the result was just "a" rather than "aaaa", for example. Two + separate and independent bugs (that affected different cases) have been + fixed. + +39. Refactored the code to abolish the use of different opcodes for small + capturing bracket numbers. This is a tidy that I avoided doing when I + removed the limit on the number of capturing brackets for 3.5 back in 2001. + The new approach is not only tidier, it makes it possible to reduce the + memory needed to fix the previous bug (38). + +40. Implemented PCRE_NEWLINE_ANY to recognize any of the Unicode newline + sequences (http://unicode.org/unicode/reports/tr18/) as "newline" when + processing dot, circumflex, or dollar metacharacters, or #-comments in /x + mode. + +41. Add \R to match any Unicode newline sequence, as suggested in the Unicode + report. + +42. Applied patch, originally from Ari Pollak, modified by Google, to allow + copy construction and assignment in the C++ wrapper. + +43. Updated pcregrep to support "--newline=any". In the process, I fixed a + couple of bugs that could have given wrong results in the "--newline=crlf" + case. + +44. Added a number of casts and did some reorganization of signed/unsigned int + variables following suggestions from Dair Grant. Also renamed the variable + "this" as "item" because it is a C++ keyword. + +45. Arranged for dftables to add + + #include "pcre_internal.h" + + to pcre_chartables.c because without it, gcc 4.x may remove the array + definition from the final binary if PCRE is built into a static library and + dead code stripping is activated. + +46. For an unanchored pattern, if a match attempt fails at the start of a + newline sequence, and the newline setting is CRLF or ANY, and the next two + characters are CRLF, advance by two characters instead of one. + + +Version 6.7 04-Jul-06 +--------------------- + + 1. In order to handle tests when input lines are enormously long, pcretest has + been re-factored so that it automatically extends its buffers when + necessary. The code is crude, but this _is_ just a test program. The + default size has been increased from 32K to 50K. + + 2. The code in pcre_study() was using the value of the re argument before + testing it for NULL. (Of course, in any sensible call of the function, it + won't be NULL.) + + 3. The memmove() emulation function in pcre_internal.h, which is used on + systems that lack both memmove() and bcopy() - that is, hardly ever - + was missing a "static" storage class specifier. + + 4. When UTF-8 mode was not set, PCRE looped when compiling certain patterns + containing an extended class (one that cannot be represented by a bitmap + because it contains high-valued characters or Unicode property items, e.g. + [\pZ]). Almost always one would set UTF-8 mode when processing such a + pattern, but PCRE should not loop if you do not (it no longer does). + [Detail: two cases were found: (a) a repeated subpattern containing an + extended class; (b) a recursive reference to a subpattern that followed a + previous extended class. It wasn't skipping over the extended class + correctly when UTF-8 mode was not set.] + + 5. A negated single-character class was not being recognized as fixed-length + in lookbehind assertions such as (?<=[^f]), leading to an incorrect + compile error "lookbehind assertion is not fixed length". + + 6. The RunPerlTest auxiliary script was showing an unexpected difference + between PCRE and Perl for UTF-8 tests. It turns out that it is hard to + write a Perl script that can interpret lines of an input file either as + byte characters or as UTF-8, which is what "perltest" was being required to + do for the non-UTF-8 and UTF-8 tests, respectively. Essentially what you + can't do is switch easily at run time between having the "use utf8;" pragma + or not. In the end, I fudged it by using the RunPerlTest script to insert + "use utf8;" explicitly for the UTF-8 tests. + + 7. In multiline (/m) mode, PCRE was matching ^ after a terminating newline at + the end of the subject string, contrary to the documentation and to what + Perl does. This was true of both matching functions. Now it matches only at + the start of the subject and immediately after *internal* newlines. + + 8. A call of pcre_fullinfo() from pcretest to get the option bits was passing + a pointer to an int instead of a pointer to an unsigned long int. This + caused problems on 64-bit systems. + + 9. Applied a patch from the folks at Google to pcrecpp.cc, to fix "another + instance of the 'standard' template library not being so standard". + +10. There was no check on the number of named subpatterns nor the maximum + length of a subpattern name. The product of these values is used to compute + the size of the memory block for a compiled pattern. By supplying a very + long subpattern name and a large number of named subpatterns, the size + computation could be caused to overflow. This is now prevented by limiting + the length of names to 32 characters, and the number of named subpatterns + to 10,000. + +11. Subpatterns that are repeated with specific counts have to be replicated in + the compiled pattern. The size of memory for this was computed from the + length of the subpattern and the repeat count. The latter is limited to + 65535, but there was no limit on the former, meaning that integer overflow + could in principle occur. The compiled length of a repeated subpattern is + now limited to 30,000 bytes in order to prevent this. + +12. Added the optional facility to have named substrings with the same name. + +13. Added the ability to use a named substring as a condition, using the + Python syntax: (?(name)yes|no). This overloads (?(R)... and names that + are numbers (not recommended). Forward references are permitted. + +14. Added forward references in named backreferences (if you see what I mean). + +15. In UTF-8 mode, with the PCRE_DOTALL option set, a quantified dot in the + pattern could run off the end of the subject. For example, the pattern + "(?s)(.{1,5})"8 did this with the subject "ab". + +16. If PCRE_DOTALL or PCRE_MULTILINE were set, pcre_dfa_exec() behaved as if + PCRE_CASELESS was set when matching characters that were quantified with ? + or *. + +17. A character class other than a single negated character that had a minimum + but no maximum quantifier - for example [ab]{6,} - was not handled + correctly by pce_dfa_exec(). It would match only one character. + +18. A valid (though odd) pattern that looked like a POSIX character + class but used an invalid character after [ (for example [[,abc,]]) caused + pcre_compile() to give the error "Failed: internal error: code overflow" or + in some cases to crash with a glibc free() error. This could even happen if + the pattern terminated after [[ but there just happened to be a sequence of + letters, a binary zero, and a closing ] in the memory that followed. + +19. Perl's treatment of octal escapes in the range \400 to \777 has changed + over the years. Originally (before any Unicode support), just the bottom 8 + bits were taken. Thus, for example, \500 really meant \100. Nowadays the + output from "man perlunicode" includes this: + + The regular expression compiler produces polymorphic opcodes. That + is, the pattern adapts to the data and automatically switches to + the Unicode character scheme when presented with Unicode data--or + instead uses a traditional byte scheme when presented with byte + data. + + Sadly, a wide octal escape does not cause a switch, and in a string with + no other multibyte characters, these octal escapes are treated as before. + Thus, in Perl, the pattern /\500/ actually matches \100 but the pattern + /\500|\x{1ff}/ matches \500 or \777 because the whole thing is treated as a + Unicode string. + + I have not perpetrated such confusion in PCRE. Up till now, it took just + the bottom 8 bits, as in old Perl. I have now made octal escapes with + values greater than \377 illegal in non-UTF-8 mode. In UTF-8 mode they + translate to the appropriate multibyte character. + +29. Applied some refactoring to reduce the number of warnings from Microsoft + and Borland compilers. This has included removing the fudge introduced + seven years ago for the OS/2 compiler (see 2.02/2 below) because it caused + a warning about an unused variable. + +21. PCRE has not included VT (character 0x0b) in the set of whitespace + characters since release 4.0, because Perl (from release 5.004) does not. + [Or at least, is documented not to: some releases seem to be in conflict + with the documentation.] However, when a pattern was studied with + pcre_study() and all its branches started with \s, PCRE still included VT + as a possible starting character. Of course, this did no harm; it just + caused an unnecessary match attempt. + +22. Removed a now-redundant internal flag bit that recorded the fact that case + dependency changed within the pattern. This was once needed for "required + byte" processing, but is no longer used. This recovers a now-scarce options + bit. Also moved the least significant internal flag bit to the most- + significant bit of the word, which was not previously used (hangover from + the days when it was an int rather than a uint) to free up another bit for + the future. + +23. Added support for CRLF line endings as well as CR and LF. As well as the + default being selectable at build time, it can now be changed at runtime + via the PCRE_NEWLINE_xxx flags. There are now options for pcregrep to + specify that it is scanning data with non-default line endings. + +24. Changed the definition of CXXLINK to make it agree with the definition of + LINK in the Makefile, by replacing LDFLAGS to CXXFLAGS. + +25. Applied Ian Taylor's patches to avoid using another stack frame for tail + recursions. This makes a big different to stack usage for some patterns. + +26. If a subpattern containing a named recursion or subroutine reference such + as (?P>B) was quantified, for example (xxx(?P>B)){3}, the calculation of + the space required for the compiled pattern went wrong and gave too small a + value. Depending on the environment, this could lead to "Failed: internal + error: code overflow at offset 49" or "glibc detected double free or + corruption" errors. + +27. Applied patches from Google (a) to support the new newline modes and (b) to + advance over multibyte UTF-8 characters in GlobalReplace. + +28. Change free() to pcre_free() in pcredemo.c. Apparently this makes a + difference for some implementation of PCRE in some Windows version. + +29. Added some extra testing facilities to pcretest: + + \q in a data line sets the "match limit" value + \Q in a data line sets the "match recursion limt" value + -S sets the stack size, where is in megabytes + + The -S option isn't available for Windows. + + Version 6.6 06-Feb-06 --------------------- diff -Nurp tin-1.9.1/pcre/LICENCE tin-1.9.2/pcre/LICENCE --- tin-1.9.1/pcre/LICENCE 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/LICENCE 2006-12-19 10:31:35.000000000 +0100 @@ -4,7 +4,7 @@ PCRE LICENCE PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. -Release 6 of PCRE is distributed under the terms of the "BSD" licence, as +Release 7 of PCRE is distributed under the terms of the "BSD" licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. @@ -31,7 +31,7 @@ THE C++ WRAPPER FUNCTIONS Contributed by: Google Inc. -Copyright (c) 2005, Google Inc. +Copyright (c) 2006, Google Inc. All rights reserved. diff -Nurp tin-1.9.1/pcre/Makefile.in tin-1.9.2/pcre/Makefile.in --- tin-1.9.1/pcre/Makefile.in 2006-02-15 21:33:08.000000000 +0100 +++ tin-1.9.2/pcre/Makefile.in 2006-12-21 15:26:23.000000000 +0100 @@ -52,6 +52,7 @@ OBJ = \ pcre_globals$o \ pcre_info$o \ pcre_maketables$o \ + pcre_newline$o \ pcre_ord2utf8$o \ pcre_refcount$o \ pcre_study$o \ diff -Nurp tin-1.9.1/pcre/Makefile.in-old tin-1.9.2/pcre/Makefile.in-old --- tin-1.9.1/pcre/Makefile.in-old 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/Makefile.in-old 2006-12-19 10:31:35.000000000 +0100 @@ -109,7 +109,7 @@ LTCXXCOMPILE = $(LIBTOOL) --mode=compile LINKLIB = $(LIBTOOL) --mode=link $(CC) -export-symbols-regex '^[^_]' $(LDFLAGS) -I. -I$(top_srcdir) LINK_FOR_BUILD = $(LIBTOOL) --mode=link $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -I. -I$(top_srcdir) @ON_WINDOWS@CXXLINK = $(CXX) $(LDFLAGS) -I. -I$(top_srcdir) -L.libs -@NOT_ON_WINDOWS@CXXLINK = $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) $(CXXLDFLAGS) -I. -I$(top_srcdir) +@NOT_ON_WINDOWS@CXXLINK = $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(CXXLDFLAGS) -I. -I$(top_srcdir) CXXLINKLIB = $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -I. -I$(top_srcdir) # These are the version numbers for the shared libraries @@ -131,6 +131,7 @@ OBJ = pcre_chartables.@OBJEXT@ \ pcre_globals.@OBJEXT@ \ pcre_info.@OBJEXT@ \ pcre_maketables.@OBJEXT@ \ + pcre_newline.@OBJEXT@ \ pcre_ord2utf8.@OBJEXT@ \ pcre_refcount.@OBJEXT@ \ pcre_study.@OBJEXT@ \ @@ -152,6 +153,7 @@ LOBJ = pcre_chartables.lo \ pcre_globals.lo \ pcre_info.lo \ pcre_maketables.lo \ + pcre_newline.lo \ pcre_ord2utf8.lo \ pcre_refcount.lo \ pcre_study.lo \ @@ -275,6 +277,11 @@ pcre_maketables.@OBJEXT@: Makefile confi @$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \ $(top_srcdir)/pcre_maketables.c +pcre_newline.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \ + $(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_newline.c + @$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \ + $(top_srcdir)/pcre_newline.c + pcre_ord2utf8.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \ $(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_ord2utf8.c @$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \ @@ -303,6 +310,7 @@ pcre_try_flipped.@OBJEXT@: Makefile conf pcre_ucp_searchfuncs.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \ $(top_srcdir)/pcre_internal.h \ $(top_srcdir)/pcre_ucp_searchfuncs.c \ + $(top_srcdir)/ucpinternal.h \ $(top_srcdir)/ucptable.c @$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \ $(top_srcdir)/pcre_ucp_searchfuncs.c @@ -486,6 +494,7 @@ install: all @ON_WINDOWS@ wininst $(INSTALL_DATA) $(top_srcdir)/doc/pcreposix.3 $(DESTDIR)$(MANDIR)/man3/pcreposix.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcreprecompile.3 $(DESTDIR)$(MANDIR)/man3/pcreprecompile.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcresample.3 $(DESTDIR)$(MANDIR)/man3/pcresample.3 + $(INSTALL_DATA) $(top_srcdir)/doc/pcrestack.3 $(DESTDIR)$(MANDIR)/man3/pcrestack.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_compile.3 $(DESTDIR)$(MANDIR)/man3/pcre_compile.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_compile2.3 $(DESTDIR)$(MANDIR)/man3/pcre_compile2.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_config.3 $(DESTDIR)$(MANDIR)/man3/pcre_config.3 @@ -498,6 +507,7 @@ install: all @ON_WINDOWS@ wininst $(INSTALL_DATA) $(top_srcdir)/doc/pcre_fullinfo.3 $(DESTDIR)$(MANDIR)/man3/pcre_fullinfo.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_get_named_substring.3 $(DESTDIR)$(MANDIR)/man3/pcre_get_named_substring.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_get_stringnumber.3 $(DESTDIR)$(MANDIR)/man3/pcre_get_stringnumber.3 + $(INSTALL_DATA) $(top_srcdir)/doc/pcre_get_stringtable_entries.3 $(DESTDIR)$(MANDIR)/man3/pcre_get_stringtable_entries.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_get_substring.3 $(DESTDIR)$(MANDIR)/man3/pcre_get_substring.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_get_substring_list.3 $(DESTDIR)$(MANDIR)/man3/pcre_get_substring_list.3 $(INSTALL_DATA) $(top_srcdir)/doc/pcre_info.3 $(DESTDIR)$(MANDIR)/man3/pcre_info.3 @@ -514,6 +524,7 @@ install: all @ON_WINDOWS@ wininst $(INSTALL) pcre-config $(DESTDIR)$(BINDIR)/pcre-config $(mkinstalldirs) $(DESTDIR)$(LIBDIR)/pkgconfig $(INSTALL_DATA) libpcre.pc $(DESTDIR)$(LIBDIR)/pkgconfig/libpcre.pc + $(INSTALL_DATA) libpcrecpp.pc $(DESTDIR)$(LIBDIR)/pkgconfig/libpcrecpp.pc # The uninstall target removes all the files that were installed. @@ -540,6 +551,7 @@ uninstall:; -rm -rf \ $(DESTDIR)$(MANDIR)/man3/pcreposix.3 \ $(DESTDIR)$(MANDIR)/man3/pcreprecompile.3 \ $(DESTDIR)$(MANDIR)/man3/pcresample.3 \ + $(DESTDIR)$(MANDIR)/man3/pcrestack.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_compile.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_compile2.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_config.3 \ @@ -552,6 +564,7 @@ uninstall:; -rm -rf \ $(DESTDIR)$(MANDIR)/man3/pcre_fullinfo.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_get_named_substring.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_get_stringnumber.3 \ + $(DESTDIR)$(MANDIR)/man3/pcre_get_stringtable_entries.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_get_substring.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_get_substring_list.3 \ $(DESTDIR)$(MANDIR)/man3/pcre_info.3 \ @@ -564,7 +577,8 @@ uninstall:; -rm -rf \ $(DESTDIR)$(BINDIR)/pcregrep@EXEEXT@ \ $(DESTDIR)$(BINDIR)/pcretest@EXEEXT@ \ $(DESTDIR)$(BINDIR)/pcre-config \ - $(DESTDIR)$(LIBDIR)/pkgconfig/libpcre.pc + $(DESTDIR)$(LIBDIR)/pkgconfig/libpcre.pc \ + $(DESTDIR)$(LIBDIR)/pkgconfig/libpcrecpp.pc # We deliberately omit dftables and pcre_chartables.c from 'make clean'; once # made pcre_chartables.c shouldn't change, and if people have edited the tables @@ -576,7 +590,7 @@ clean:; -rm -rf *.@OBJEXT@ *.lo distclean: clean -rm -f pcre_chartables.c libtool pcre-config libpcre.pc \ - pcre_stringpiece.h pcrecpparg.h \ + libpcrecpp.pc pcre_stringpiece.h pcrecpparg.h \ dftables@EXEEXT@ RunGrepTest RunTest \ Makefile config.h config.status config.log config.cache diff -Nurp tin-1.9.1/pcre/NEWS tin-1.9.2/pcre/NEWS --- tin-1.9.1/pcre/NEWS 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/NEWS 2006-12-19 10:31:35.000000000 +0100 @@ -1,6 +1,47 @@ News about PCRE releases ------------------------ +Release 7.0 23-Nov-06 +--------------------- + +This release has a new major number because there have been some internal +upheavals to facilitate the addition of new optimizations and other facilities, +and to make subsequent maintenance and extension easier. Compilation is likely +to be a bit slower, but there should be no major effect on runtime performance. +Previously compiled patterns are NOT upwards compatible with this release. If +you have saved compiled patterns from a previous release, you will have to +re-compile them. Important changes that are visible to users are: + +1. The Unicode property tables have been updated to Unicode 5.0.0, which adds + some more scripts. + +2. The option PCRE_NEWLINE_ANY causes PCRE to recognize any Unicode newline + sequence as a newline. + +3. The \R escape matches a single Unicode newline sequence as a single unit. + +4. New features that will appear in Perl 5.10 are now in PCRE. These include + alternative Perl syntax for named parentheses, and Perl syntax for + recursion. + +5. The C++ wrapper interface has been extended by the addition of a + QuoteMeta function and the ability to allow copy construction and + assignment. + +For a complete list of changes, see the ChangeLog file. + + +Release 6.7 04-Jul-06 +--------------------- + +The main additions to this release are the ability to use the same name for +multiple sets of parentheses, and support for CRLF line endings in both the +library and pcregrep (and in pcretest for testing). + +Thanks to Ian Taylor, the stack usage for many kinds of pattern has been +significantly reduced for certain subject strings. + + Release 6.5 01-Feb-06 --------------------- diff -Nurp tin-1.9.1/pcre/NON-UNIX-USE tin-1.9.2/pcre/NON-UNIX-USE --- tin-1.9.1/pcre/NON-UNIX-USE 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/NON-UNIX-USE 2006-12-19 10:31:35.000000000 +0100 @@ -22,7 +22,7 @@ The following are generic comments about indented commands are suggestions from Mark Tetrode as to which commands you might use on a Windows system to build a static library. -(1) Copy or rename the file config.in as config.h, and change the macros that +(1) Copy or rename the file config.h.in as config.h, and change the macros that define HAVE_STRERROR and HAVE_MEMMOVE to define them as 1 rather than 0. Unfortunately, because of the way Unix autoconf works, the default setting has to be 0. You may also want to make changes to other macros in config.h. In @@ -31,7 +31,7 @@ the NEWLINE macro. The default is to use your compiler gives to '\n'. rem Mark Tetrode's commands - copy config.in config.h + copy config.h.in config.h rem Use write, because notepad cannot handle UNIX files. Change values. write config.h @@ -56,6 +56,7 @@ character tables and writes them to that pcre_globals.c pcre_info.c pcre_maketables.c + pcre_newline.c pcre_ord2utf8.c pcre_refcount.c pcre_study.c @@ -93,10 +94,10 @@ pcre and pcreposix libraries when linkin cl /F0x400000 pcretest.c pcre.lib pcreposix.lib (6) Run pcretest on the testinput files in the testdata directory, and check -that the output matches the corresponding testoutput files. You must use the --i option when checking testinput2. Note that the supplied files are in Unix -format, with just LF characters as line terminators. You may need to edit them -to change this if your system uses a different convention. +that the output matches the corresponding testoutput files. Note that the +supplied files are in Unix format, with just LF characters as line terminators. +You may need to edit them to change this if your system uses a different +convention. rem Mark Tetrode's commands pcretest testdata\testinput1 testdata\myoutput1 @@ -135,6 +136,17 @@ If you have a system without "configure" Makefile.in to create Makefile, substituting suitable values for the variables at the head of the file. +Michael Roy sent these comments about building PCRE under Windows with BCC5.5: + + Some of the core BCC libraries have a version of PCRE from 1998 built in, + which can lead to pcre_exec() giving an erroneous PCRE_ERROR_NULL from a + version mismatch. I'm including an easy workaround below, if you'd like to + include it in the non-unix instructions: + + When linking a project with BCC5.5, pcre.lib must be included before any of + the libraries cw32.lib, cw32i.lib, cw32mt.lib, and cw32mti.lib on the command + line. + Some help in building a Win32 DLL of PCRE in GnuWin32 environments was contributed by Paul Sokolovsky. These environments are Mingw32 (http://www.xraylith.wisc.edu/~khan/software/gnu-win32/) and CygWin diff -Nurp tin-1.9.1/pcre/README tin-1.9.2/pcre/README --- tin-1.9.1/pcre/README 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/README 2006-12-19 10:31:35.000000000 +0100 @@ -34,7 +34,7 @@ Documentation for PCRE ---------------------- If you install PCRE in the normal way, you will end up with an installed set of -man pages whose names all start with "pcre". The one that is called "pcre" +man pages whose names all start with "pcre". The one that is just called "pcre" lists all the others. In addition to these man pages, the PCRE documentation is supplied in two other forms; however, as there is no standard place to install them, they are left in the doc directory of the unpacked source distribution. @@ -114,15 +114,17 @@ library. You can read more about them in . If, in addition to support for UTF-8 character strings, you want to include support for the \P, \p, and \X sequences that recognize Unicode character properties, you must add --enable-unicode-properties to the "configure" - command. This adds about 90K to the size of the library (in the form of a + command. This adds about 30K to the size of the library (in the form of a property table); only the basic two-letter properties such as Lu are supported. -. You can build PCRE to recognize either CR or LF as the newline character, - instead of whatever your compiler uses for "\n", by adding --newline-is-cr or - --newline-is-lf to the "configure" command, respectively. Only do this if you - really understand what you are doing. On traditional Unix-like systems, the - newline character is LF. +. You can build PCRE to recognize either CR or LF or the sequence CRLF or any + of the Unicode newline sequences as indicating the end of a line. Whatever + you specify at build time is the default; the caller of PCRE can change the + selection at run time. The default newline indicator is a single LF character + (the Unix standard). You can specify the default newline indicator by adding + --newline-is-cr or --newline-is-lf or --newline-is-crlf or --newline-is-any + to the "configure" command, respectively. . When called via the POSIX interface, PCRE uses malloc() to get additional storage for processing capturing parentheses if there are more than 10 of @@ -142,6 +144,16 @@ library. You can read more about them in pcre_exec() can supply their own value. There is discussion on the pcreapi man page. +. There is a separate counter that limits the depth of recursive function calls + during a matching process. This also has a default of ten million, which is + essentially "unlimited". You can change the default by setting, for example, + + --with-match-limit-recursion=500000 + + Recursive function calls use up the runtime stack; running out of stack can + cause programs to crash in strange ways. There is a discussion about stack + sizes in the pcrestack man page. + . The default maximum compiled pattern size is around 64K. You can increase this by adding --with-link-size=3 to the "configure" command. You can increase it even more by setting --with-link-size=4, but this is unlikely @@ -165,7 +177,6 @@ library. You can read more about them in The "configure" script builds eight files for the basic C library: -. pcre.h is the header file for C programs that call PCRE . Makefile is the makefile that builds the library . config.h contains build-time configuration options for the library . pcre-config is a script that shows the settings of "configure" options @@ -272,7 +283,7 @@ to the values of CC and CFLAGS. Using HP's ANSI C++ compiler (aCC) ---------------------------------- -Unless C++ support is disabled by specifiying the "--disable-cpp" option of the +Unless C++ support is disabled by specifying the "--disable-cpp" option of the "configure" script, you *must* include the "-AA" option in the CXXFLAGS environment variable in order for the C++ components to compile correctly. @@ -294,8 +305,8 @@ PCRE in the same way as for Unix systems PCRE has been compiled on Windows systems and on Macintoshes, but I don't know the details because I don't use those systems. It should be straightforward to -build PCRE on any system that has a Standard C compiler, because it uses only -Standard C functions. +build PCRE on any system that has a Standard C compiler and library, because it +uses only Standard C functions. Testing PCRE @@ -314,15 +325,15 @@ NON-UNIX-USE. The RunTest script runs the pcretest test program (which is documented in its own man page) on each of the testinput files (in the testdata directory) in turn, and compares the output with the contents of the corresponding testoutput -file. A file called testtry is used to hold the main output from pcretest +files. A file called testtry is used to hold the main output from pcretest (testsavedregex is also used as a working file). To run pcretest on just one of the test files, give its number as an argument to RunTest, for example: RunTest 2 -The first file can also be fed directly into the perltest script to check that -Perl gives the same results. The only difference you should see is in the first -few lines, where the Perl version is given instead of the PCRE version. +The first test file can also be fed directly into the perltest script to check +that Perl gives the same results. The only difference you should see is in the +first few lines, where the Perl version is given instead of the PCRE version. The second set of tests check pcre_fullinfo(), pcre_info(), pcre_study(), pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error @@ -431,26 +442,26 @@ The distribution should contain the foll pcre_globals.c ) and some internal functions that they use pcre_info.c ) pcre_maketables.c ) + pcre_newline.c ) pcre_ord2utf8.c ) - pcre_printint.c ) + pcre_refcount.c ) pcre_study.c ) pcre_tables.c ) pcre_try_flipped.c ) - pcre_ucp_findchar.c ) + pcre_ucp_searchfuncs.c) pcre_valid_utf8.c ) pcre_version.c ) pcre_xclass.c ) - - ucp_findchar.c ) - ucp.h ) source for the code that is used for - ucpinternal.h ) Unicode property handling ucptable.c ) - ucptypetable.c ) - pcre.in "source" for the header for the external API; pcre.h - is built from this by "configure" + pcre_printint.src ) debugging function that is #included in pcretest, and + ) can also be #included in pcre_compile() + + pcre.h the public PCRE header file pcreposix.h header for the external POSIX wrapper API pcre_internal.h header for internal use + ucp.h ) headers concerned with + ucpinternal.h ) Unicode property handling config.in template for config.h, which is built by configure pcrecpp.h the header file for the C++ wrapper @@ -477,8 +488,9 @@ The distribution should contain the foll RunGrepTest.in template for a Unix shell script for pcregrep tests config.guess ) files used by libtool, config.sub ) used only when building a shared library + config.h.in "source" for the config.h header file configure a configuring shell script (built by autoconf) - configure.in the autoconf input used to build configure + configure.ac the autoconf input used to build configure doc/Tech.Notes notes on the encoding doc/*.3 man page sources for the PCRE functions doc/*.1 man page sources for pcregrep and pcretest @@ -506,7 +518,6 @@ The distribution should contain the foll libpcre.def libpcreposix.def - pcre.def (D) Auxiliary file for VPASCAL @@ -515,4 +526,4 @@ The distribution should contain the foll Philip Hazel Email local part: ph10 Email domain: cam.ac.uk -January 2006 +November 2006 diff -Nurp tin-1.9.1/pcre/RunTest.in tin-1.9.2/pcre/RunTest.in --- tin-1.9.1/pcre/RunTest.in 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/RunTest.in 2006-12-19 10:31:35.000000000 +0100 @@ -128,7 +128,7 @@ fi if [ $do2 = yes ] ; then if [ "@LINK_SIZE@" = "" -o "@LINK_SIZE@" = "-DLINK_SIZE=2" ] ; then echo "Test 2: API and error handling (not Perl compatible)" - $valgrind ./pcretest -q -i $testdata/testinput2 testtry + $valgrind ./pcretest -q $testdata/testinput2 testtry if [ $? = 0 ] ; then $cf testtry $testdata/testoutput2 if [ $? != 0 ] ; then exit 1; fi diff -Nurp tin-1.9.1/pcre/config.h tin-1.9.2/pcre/config.h --- tin-1.9.1/pcre/config.h 2006-02-15 20:48:08.000000000 +0100 +++ tin-1.9.2/pcre/config.h 2006-12-21 15:01:51.000000000 +0100 @@ -2,4 +2,7 @@ #include "autoconf.h" #define EBCDIC 0 #define POSIX_MALLOC_THRESHOLD 10 -#define PCRE_DATA_SCOPE +#define PCRE_EXPORT +#define MAX_NAME_SIZE 32 +#define MAX_NAME_COUNT 10000 +#define MAX_DUPLENGTH 30000 diff -Nurp tin-1.9.1/pcre/configure.in tin-1.9.2/pcre/configure.in --- tin-1.9.1/pcre/configure.in 1970-01-01 01:00:00.000000000 +0100 +++ tin-1.9.2/pcre/configure.in 2006-12-21 14:41:26.000000000 +0100 @@ -0,0 +1,290 @@ +dnl Process this file with autoconf to produce a configure script. + +dnl This configure.in file has been hacked around quite a lot as a result of +dnl patches that various people have sent to me (PH). Sometimes the information +dnl I get is contradictory. I've tried to put in comments that explain things, +dnl but in some cases the information is second-hand and I have no way of +dnl verifying it. I am not an autoconf or libtool expert! + +dnl This is required at the start; the name is the name of a file +dnl it should be seeing, to verify it is in the same directory. + +AC_INIT(dftables.c) + +dnl A safety precaution + +AC_PREREQ(2.57) + +dnl Arrange to build config.h from config.h.in. Note that pcre.h is +dnl built differently, as it is just a "substitution" file. +dnl Manual says this macro should come right after AC_INIT. +AC_CONFIG_HEADER(config.h) + +dnl Provide the current PCRE version information. Do not use numbers +dnl with leading zeros for the minor version, as they end up in a C +dnl macro, and may be treated as octal constants. Stick to single +dnl digits for minor numbers less than 10. There are unlikely to be +dnl that many releases anyway. + +PCRE_MAJOR=6 +PCRE_MINOR=4 +PCRE_DATE=05-Sep-2005 +PCRE_VERSION=${PCRE_MAJOR}.${PCRE_MINOR} + +dnl Default values for miscellaneous macros + +POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=10 + +dnl Provide versioning information for libtool shared libraries that +dnl are built by default on Unix systems. + +PCRE_LIB_VERSION=0:1:0 +PCRE_POSIXLIB_VERSION=0:0:0 +PCRE_CPPLIB_VERSION=0:0:0 + +dnl Handle --disable-cpp + +AC_ARG_ENABLE(cpp, +[ --disable-cpp disable C++ support], +want_cpp="$enableval", want_cpp=yes) + +dnl Checks for programs. + +AC_PROG_CC + +dnl Test for C++ for the C++ wrapper libpcrecpp. It seems, however, that +dnl AC_PROC_CXX will set $CXX to "g++" when no C++ compiler is installed, even +dnl though that is completely bogus. (This may happen only on certain systems +dnl with certain versions of autoconf, of course.) An attempt to include this +dnl test inside a check for want_cpp was criticized by a libtool expert, who +dnl tells me that it isn't allowed. + +AC_PROG_CXX + +dnl The icc compiler has the same options as gcc, so let the rest of the +dnl configure script think it has gcc when setting up dnl options etc. +dnl This is a nasty hack which no longer seems necessary with the update +dnl to the latest libtool files, so I have commented it out. +dnl +dnl if test "$CC" = "icc" ; then GCC=yes ; fi + +AC_PROG_INSTALL +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL + +dnl We need to find a compiler for compiling a program to run on the local host +dnl while building. It needs to be different from CC when cross-compiling. +dnl There is a macro called AC_PROG_CC_FOR_BUILD in the GNU archive for +dnl figuring this out automatically. Unfortunately, it does not work with the +dnl latest versions of autoconf. So for the moment, we just default to the +dnl same values as the "main" compiler. People who are cross-compiling will +dnl just have to adjust the Makefile by hand or set these values when they +dnl run "configure". + +CC_FOR_BUILD=${CC_FOR_BUILD:-'$(CC)'} +CXX_FOR_BUILD=${CXX_FOR_BUILD:-'$(CXX)'} +CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD:-'$(CFLAGS)'} +CPPFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD:-'$(CPPFLAGS)'} +CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD:-'$(CXXFLAGS)'} +BUILD_EXEEXT=${BUILD_EXEEXT:-'$(EXEEXT)'} +BUILD_OBJEXT=${BUILD_OBJEXT:-'$(OBJEXT)'} + +dnl Checks for header files. + +AC_HEADER_STDC +AC_CHECK_HEADERS(limits.h) + +dnl The files below are C++ header files. One person told me (PH) that +dnl AC_LANG_CPLUSPLUS unsets CXX if it was explicitly set to something which +dnl doesn't work. However, this doesn't always seem to be the case. + +if test "x$want_cpp" = "xyes" -a -n "$CXX" +then +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +dnl We could be more clever here, given we're doing AC_SUBST with this +dnl (eg set a var to be the name of the include file we want). But we're not +dnl so it's easy to change back to 'regular' autoconf vars if we needed to. +AC_CHECK_HEADERS(string, [pcre_have_cpp_headers="1"], + [pcre_have_cpp_headers="0"]) +AC_CHECK_HEADERS(bits/type_traits.h, [pcre_have_bits_type_traits="1"], + [pcre_have_bits_type_traits="0"]) +AC_CHECK_HEADERS(type_traits.h, [pcre_have_type_traits="1"], + [pcre_have_type_traits="0"]) +dnl Using AC_SUBST eliminates the need to include config.h in a public .h file +AC_SUBST(pcre_have_bits_type_traits) +AC_SUBST(pcre_have_type_traits) +AC_LANG_RESTORE +fi + +dnl From the above, we now have enough info to know if C++ is fully installed +if test "x$want_cpp" = "xyes" -a -n "$CXX" -a "$pcre_have_cpp_headers" = 1; then + MAYBE_CPP_TARGETS='$(CPP_TARGETS)' + HAVE_CPP= +else + MAYBE_CPP_TARGETS= + HAVE_CPP="#" +fi +AC_SUBST(MAYBE_CPP_TARGETS) +AC_SUBST(HAVE_CPP) + +dnl Checks for typedefs, structures, and compiler characteristics. + +AC_C_CONST +AC_TYPE_SIZE_T + +AC_CHECK_TYPES([long long], [pcre_have_long_long="1"], [pcre_have_long_long="0"]) +AC_CHECK_TYPES([unsigned long long], [pcre_have_ulong_long="1"], [pcre_have_ulong_long="0"]) +AC_SUBST(pcre_have_long_long) +AC_SUBST(pcre_have_ulong_long) + +dnl Checks for library functions. + +AC_CHECK_FUNCS(bcopy memmove strerror strtoq strtoll) + +dnl Handle --enable-utf8 + +AC_ARG_ENABLE(utf8, +[ --enable-utf8 enable UTF8 support], +if test "$enableval" = "yes"; then + UTF8=-DSUPPORT_UTF8 +fi +) + +dnl Handle --enable-unicode-properties + +AC_ARG_ENABLE(unicode-properties, +[ --enable-unicode-properties enable Unicode properties support], +if test "$enableval" = "yes"; then + UCP=-DSUPPORT_UCP +fi +) + +dnl Handle --enable-newline-is-cr + +AC_ARG_ENABLE(newline-is-cr, +[ --enable-newline-is-cr use CR as the newline character], +if test "$enableval" = "yes"; then + NEWLINE=-DNEWLINE=13 +fi +) + +dnl Handle --enable-newline-is-lf + +AC_ARG_ENABLE(newline-is-lf, +[ --enable-newline-is-lf use LF as the newline character], +if test "$enableval" = "yes"; then + NEWLINE=-DNEWLINE=10 +fi +) + +dnl Handle --enable-ebcdic + +AC_ARG_ENABLE(ebcdic, +[ --enable-ebcdic assume EBCDIC coding rather than ASCII], +if test "$enableval" == "yes"; then + EBCDIC=-DEBCDIC=1 +fi +) + +dnl Handle --disable-stack-for-recursion + +AC_ARG_ENABLE(stack-for-recursion, +[ --disable-stack-for-recursion disable use of stack recursion when matching], +if test "$enableval" = "no"; then + NO_RECURSE=-DNO_RECURSE +fi +) + +dnl There doesn't seem to be a straightforward way of having parameters +dnl that set values, other than fudging the --with thing. So that's what +dnl I've done. + +dnl Handle --with-posix-malloc-threshold=n + +AC_ARG_WITH(posix-malloc-threshold, +[ --with-posix-malloc-threshold=5 threshold for POSIX malloc usage], + POSIX_MALLOC_THRESHOLD=-DPOSIX_MALLOC_THRESHOLD=$withval +) + +dnl Handle --with-link-size=n + +AC_ARG_WITH(link-size, +[ --with-link-size=2 internal link size (2, 3, or 4 allowed)], + LINK_SIZE=-DLINK_SIZE=$withval +) + +dnl Handle --with-match_limit=n + +AC_ARG_WITH(match-limit, +[ --with-match-limit=10000000 default limit on internal looping)], + MATCH_LIMIT=-DMATCH_LIMIT=$withval +) + +dnl Unicode character property support implies UTF-8 support + +if test "$UCP" != "" ; then + UTF8=-DSUPPORT_UTF8 +fi + +dnl "Export" these variables + +AC_SUBST(BUILD_EXEEXT) +AC_SUBST(BUILD_OBJEXT) +AC_SUBST(CC_FOR_BUILD) +AC_SUBST(CXX_FOR_BUILD) +AC_SUBST(CFLAGS_FOR_BUILD) +AC_SUBST(CXXFLAGS_FOR_BUILD) +AC_SUBST(EBCDIC) +AC_SUBST(HAVE_MEMMOVE) +AC_SUBST(HAVE_STRERROR) +AC_SUBST(LINK_SIZE) +AC_SUBST(MATCH_LIMIT) +AC_SUBST(NEWLINE) +AC_SUBST(NO_RECURSE) +AC_SUBST(PCRE_MAJOR) +AC_SUBST(PCRE_MINOR) +AC_SUBST(PCRE_DATE) +AC_SUBST(PCRE_VERSION) +AC_SUBST(PCRE_LIB_VERSION) +AC_SUBST(PCRE_POSIXLIB_VERSION) +AC_SUBST(PCRE_CPPLIB_VERSION) +AC_SUBST(POSIX_MALLOC_THRESHOLD) +AC_SUBST(UCP) +AC_SUBST(UTF8) + +dnl Stuff to make MinGW work better. Special treatment is no longer +dnl needed for Cygwin. + +case $host_os in +mingw* ) + POSIX_OBJ=pcreposix.o + POSIX_LOBJ=pcreposix.lo + POSIX_LIB= + ON_WINDOWS= + NOT_ON_WINDOWS="#" + WIN_PREFIX= + ;; +* ) + ON_WINDOWS="#" + NOT_ON_WINDOWS= + POSIX_OBJ= + POSIX_LOBJ= + POSIX_LIB=libpcreposix.la + WIN_PREFIX= + ;; +esac +AC_SUBST(WIN_PREFIX) +AC_SUBST(ON_WINDOWS) +AC_SUBST(NOT_ON_WINDOWS) +AC_SUBST(POSIX_OBJ) +AC_SUBST(POSIX_LOBJ) +AC_SUBST(POSIX_LIB) + +if test "x$enable_shared" = "xno" ; then + AC_DEFINE([PCRE_STATIC],[1],[to link statically]) +fi + +dnl This must be last; it determines what files are written as well as config.h +AC_OUTPUT(Makefile pcre.h:pcre.h.in pcre-config:pcre-config.in libpcre.pc:libpcre.pc.in pcrecpp.h:pcrecpp.h.in pcre_stringpiece.h:pcre_stringpiece.h.in RunGrepTest:RunGrepTest.in RunTest:RunTest.in,[chmod a+x RunTest RunGrepTest pcre-config]) diff -Nurp tin-1.9.1/pcre/dftables.c tin-1.9.2/pcre/dftables.c --- tin-1.9.1/pcre/dftables.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/dftables.c 2006-12-19 10:31:35.000000000 +0100 @@ -86,7 +86,16 @@ fprintf(f, fprintf(f, "This file contains the default tables for characters with codes less than\n" "128 (ASCII characters). These tables are used when no external tables are\n" - "passed to PCRE. */\n\n" + "passed to PCRE.\n\n"); +fprintf(f, + "The following #include is present because without it gcc 4.x may remove\n" + "the array definition from the final binary if PCRE is built into a static\n" + "library and dead code stripping is activated. This leads to link errors.\n" + "Pulling in the header ensures that the array gets flagged as \"someone\n" + "outside this compilation unit might reference this\" and so it will always\n" + "be supplied to the linker. */\n\n" + "#include \"pcre_internal.h\"\n\n"); +fprintf(f, "const unsigned char _pcre_default_tables[] = {\n\n" "/* This table is a lower casing table. */\n\n"); diff -Nurp tin-1.9.1/pcre/doc/pcre.3 tin-1.9.2/pcre/doc/pcre.3 --- tin-1.9.1/pcre/doc/pcre.3 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/doc/pcre.3 2006-12-19 10:31:35.000000000 +0100 @@ -1,231 +1,1811 @@ -.TH PCRE 3 +.TH PCREPATTERN 3 .SH NAME PCRE - Perl-compatible regular expressions -.SH INTRODUCTION +.SH "PCRE REGULAR EXPRESSION DETAILS" .rs .sp -The PCRE library is a set of functions that implement regular expression -pattern matching using the same syntax and semantics as Perl, with just a few -differences. The current implementation of PCRE (release 6.x) corresponds -approximately with Perl 5.8, including support for UTF-8 encoded strings and -Unicode general category properties. However, this support has to be explicitly -enabled; it is not the default. -.P -In addition to the Perl-compatible matching function, PCRE also contains an -alternative matching function that matches the same compiled patterns in a -different way. In certain circumstances, the alternative function has some -advantages. For a discussion of the two matching algorithms, see the +The syntax and semantics of the regular expressions supported by PCRE are +described below. Regular expressions are also described in the Perl +documentation and in a number of books, some of which have copious examples. +Jeffrey Friedl's "Mastering Regular Expressions", published by O'Reilly, covers +regular expressions in great detail. This description of PCRE's regular +expressions is intended as reference material. +.P +The original operation of PCRE was on strings of one-byte characters. However, +there is now also support for UTF-8 character strings. To use this, you must +build PCRE to include UTF-8 support, and then call \fBpcre_compile()\fP with +the PCRE_UTF8 option. How this affects pattern matching is mentioned in several +places below. There is also a summary of UTF-8 features in the +.\" HTML +.\" +section on UTF-8 support +.\" +in the main .\" HREF -\fBpcrematching\fP +\fBpcre\fP .\" page. .P -PCRE is written in C and released as a C library. A number of people have -written wrappers and interfaces of various kinds. In particular, Google Inc. -have provided a comprehensive C++ wrapper. This is now included as part of the -PCRE distribution. The +The remainder of this document discusses the patterns that are supported by +PCRE when its main matching function, \fBpcre_exec()\fP, is used. +From release 6.0, PCRE offers a second matching function, +\fBpcre_dfa_exec()\fP, which matches using a different algorithm that is not +Perl-compatible. The advantages and disadvantages of the alternative function, +and how it differs from the normal function, are discussed in the .\" HREF -\fBpcrecpp\fP +\fBpcrematching\fP .\" -page has details of this interface. Other people's contributions can be found -in the \fIContrib\fR directory at the primary FTP site, which is: +page. +. +. +.SH "CHARACTERS AND METACHARACTERS" +.rs +.sp +A regular expression is a pattern that is matched against a subject string from +left to right. Most characters stand for themselves in a pattern, and match the +corresponding characters in the subject. As a trivial example, the pattern +.sp + The quick brown fox +.sp +matches a portion of a subject string that is identical to itself. When +caseless matching is specified (the PCRE_CASELESS option), letters are matched +independently of case. In UTF-8 mode, PCRE always understands the concept of +case for characters whose values are less than 128, so caseless matching is +always possible. For characters with higher values, the concept of case is +supported if PCRE is compiled with Unicode property support, but not otherwise. +If you want to use caseless matching for characters 128 and above, you must +ensure that PCRE is compiled with Unicode property support as well as with +UTF-8 support. +.P +The power of regular expressions comes from the ability to include alternatives +and repetitions in the pattern. These are encoded in the pattern by the use of +\fImetacharacters\fP, which do not stand for themselves but instead are +interpreted in some special way. +.P +There are two different sets of metacharacters: those that are recognized +anywhere in the pattern except within square brackets, and those that are +recognized within square brackets. Outside square brackets, the metacharacters +are as follows: +.sp + \e general escape character with several uses + ^ assert start of string (or line, in multiline mode) + $ assert end of string (or line, in multiline mode) + . match any character except newline (by default) + [ start character class definition + | start of alternative branch + ( start subpattern + ) end subpattern + ? extends the meaning of ( + also 0 or 1 quantifier + also quantifier minimizer + * 0 or more quantifier + + 1 or more quantifier + also "possessive quantifier" + { start min/max quantifier .sp -.\" HTML +Part of a pattern that is in square brackets is called a "character class". In +a character class the only metacharacters are: +.sp + \e general escape character + ^ negate the class, but only if the first character + - indicates character range +.\" JOIN + [ POSIX character class (only if followed by POSIX + syntax) + ] terminates the character class +.sp +The following sections describe the use of each of the metacharacters. +. +. +.SH BACKSLASH +.rs +.sp +The backslash character has several uses. Firstly, if it is followed by a +non-alphanumeric character, it takes away any special meaning that character +may have. This use of backslash as an escape character applies both inside and +outside character classes. +.P +For example, if you want to match a * character, you write \e* in the pattern. +This escaping action applies whether or not the following character would +otherwise be interpreted as a metacharacter, so it is always safe to precede a +non-alphanumeric with backslash to specify that it stands for itself. In +particular, if you want to match a backslash, you write \e\e. +.P +If a pattern is compiled with the PCRE_EXTENDED option, whitespace in the +pattern (other than in a character class) and characters between a # outside +a character class and the next newline are ignored. An escaping backslash can +be used to include a whitespace or # character as part of the pattern. +.P +If you want to remove the special meaning from a sequence of characters, you +can do so by putting them between \eQ and \eE. This is different from Perl in +that $ and @ are handled as literals in \eQ...\eE sequences in PCRE, whereas in +Perl, $ and @ cause variable interpolation. Note the following examples: +.sp + Pattern PCRE matches Perl matches +.sp +.\" JOIN + \eQabc$xyz\eE abc$xyz abc followed by the + contents of $xyz + \eQabc\e$xyz\eE abc\e$xyz abc\e$xyz + \eQabc\eE\e$\eQxyz\eE abc$xyz abc$xyz +.sp +The \eQ...\eE sequence is recognized both inside and outside character classes. +. +. +.\" HTML +.SS "Non-printing characters" +.rs +.sp +A second use of backslash provides a way of encoding non-printing characters +in patterns in a visible manner. There is no restriction on the appearance of +non-printing characters, apart from the binary zero that terminates a pattern, +but when a pattern is being prepared by text editing, it is usually easier to +use one of the following escape sequences than the binary character it +represents: +.sp + \ea alarm, that is, the BEL character (hex 07) + \ecx "control-x", where x is any character + \ee escape (hex 1B) + \ef formfeed (hex 0C) + \en newline (hex 0A) + \er carriage return (hex 0D) + \et tab (hex 09) + \eddd character with octal code ddd, or backreference + \exhh character with hex code hh + \ex{hhh..} character with hex code hhh.. +.sp +The precise effect of \ecx is as follows: if x is a lower case letter, it +is converted to upper case. Then bit 6 of the character (hex 40) is inverted. +Thus \ecz becomes hex 1A, but \ec{ becomes hex 3B, while \ec; becomes hex +7B. +.P +After \ex, from zero to two hexadecimal digits are read (letters can be in +upper or lower case). Any number of hexadecimal digits may appear between \ex{ +and }, but the value of the character code must be less than 256 in non-UTF-8 +mode, and less than 2**31 in UTF-8 mode (that is, the maximum hexadecimal value +is 7FFFFFFF). If characters other than hexadecimal digits appear between \ex{ +and }, or if there is no terminating }, this form of escape is not recognized. +Instead, the initial \ex will be interpreted as a basic hexadecimal escape, +with no following digits, giving a character whose value is zero. +.P +Characters whose value is less than 256 can be defined by either of the two +syntaxes for \ex. There is no difference in the way they are handled. For +example, \exdc is exactly the same as \ex{dc}. +.P +After \e0 up to two further octal digits are read. If there are fewer than two +digits, just those that are present are used. Thus the sequence \e0\ex\e07 +specifies two binary zeros followed by a BEL character (code value 7). Make +sure you supply two digits after the initial zero if the pattern character that +follows is itself an octal digit. +.P +The handling of a backslash followed by a digit other than 0 is complicated. +Outside a character class, PCRE reads it and any following digits as a decimal +number. If the number is less than 10, or if there have been at least that many +previous capturing left parentheses in the expression, the entire sequence is +taken as a \fIback reference\fP. A description of how this works is given +.\" HTML +.\" +later, +.\" +following the discussion of +.\" HTML .\" -ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre +parenthesized subpatterns. +.\" .P -Details of exactly which Perl regular expression features are and are not -supported by PCRE are given in separate documents. See the -.\" HREF -\fBpcrepattern\fR +Inside a character class, or if the decimal number is greater than 9 and there +have not been that many capturing subpatterns, PCRE re-reads up to three octal +digits following the backslash, and uses them to generate a data character. Any +subsequent digits stand for themselves. In non-UTF-8 mode, the value of a +character specified in octal must be less than \e400. In UTF-8 mode, values up +to \e777 are permitted. For example: +.sp + \e040 is another way of writing a space +.\" JOIN + \e40 is the same, provided there are fewer than 40 + previous capturing subpatterns + \e7 is always a back reference +.\" JOIN + \e11 might be a back reference, or another way of + writing a tab + \e011 is always a tab + \e0113 is a tab followed by the character "3" +.\" JOIN + \e113 might be a back reference, otherwise the + character with octal code 113 +.\" JOIN + \e377 might be a back reference, otherwise + the byte consisting entirely of 1 bits +.\" JOIN + \e81 is either a back reference, or a binary zero + followed by the two characters "8" and "1" +.sp +Note that octal values of 100 or greater must not be introduced by a leading +zero, because no more than three octal digits are ever read. +.P +All the sequences that define a single character value can be used both inside +and outside character classes. In addition, inside a character class, the +sequence \eb is interpreted as the backspace character (hex 08), and the +sequences \eR and \eX are interpreted as the characters "R" and "X", +respectively. Outside a character class, these sequences have different +meanings +.\" HTML +.\" +(see below). .\" -and -.\" HREF -\fBpcrecompat\fR +. +. +.SS "Absolute and relative back references" +.rs +.sp +The sequence \eg followed by a positive or negative number, optionally enclosed +in braces, is an absolute or relative back reference. Back references are +discussed +.\" HTML +.\" +later, +.\" +following the discussion of +.\" HTML +.\" +parenthesized subpatterns. .\" -pages. +. +. +.SS "Generic character types" +.rs +.sp +Another use of backslash is for specifying generic character types. The +following are always recognized: +.sp + \ed any decimal digit + \eD any character that is not a decimal digit + \es any whitespace character + \eS any character that is not a whitespace character + \ew any "word" character + \eW any "non-word" character +.sp +Each pair of escape sequences partitions the complete set of characters into +two disjoint sets. Any given character matches one, and only one, of each pair. .P -Some features of PCRE can be included, excluded, or changed when the library is -built. The -.\" HREF -\fBpcre_config()\fR +These character type sequences can appear both inside and outside character +classes. They each match one character of the appropriate type. If the current +matching point is at the end of the subject string, all of them fail, since +there is no character to match. +.P +For compatibility with Perl, \es does not match the VT character (code 11). +This makes it different from the the POSIX "space" class. The \es characters +are HT (9), LF (10), FF (12), CR (13), and space (32). (If "use locale;" is +included in a Perl script, \es may match the VT character. In PCRE, it never +does.) +.P +A "word" character is an underscore or any character less than 256 that is a +letter or digit. The definition of letters and digits is controlled by PCRE's +low-valued character tables, and may vary if locale-specific matching is taking +place (see +.\" HTML +.\" +"Locale support" .\" -function makes it possible for a client to discover which features are -available. The features themselves are described in the +in the .\" HREF -\fBpcrebuild\fP +\fBpcreapi\fP .\" -page. Documentation about building PCRE for various operating systems can be -found in the \fBREADME\fP file in the source distribution. +page). For example, in the "fr_FR" (French) locale, some character codes +greater than 128 are used for accented letters, and these are matched by \ew. .P -The library contains a number of undocumented internal functions and data -tables that are used by more than one of the exported external functions, but -which are not intended for use by external callers. Their names all begin with -"_pcre_", which hopefully will not provoke any name clashes. In some -environments, it is possible to control which external symbols are exported -when a shared library is built, and in these cases the undocumented symbols are -not exported. +In UTF-8 mode, characters with values greater than 128 never match \ed, \es, or +\ew, and always match \eD, \eS, and \eW. This is true even when Unicode +character property support is available. The use of locales with Unicode is +discouraged. . . -.SH "USER DOCUMENTATION" +.SS "Newline sequences" .rs .sp -The user documentation for PCRE comprises a number of different sections. In -the "man" format, each of these is a separate "man page". In the HTML format, -each is a separate page, linked from the index page. In the plain text format, -all the sections are concatenated, for ease of searching. The sections are as -follows: +Outside a character class, the escape sequence \eR matches any Unicode newline +sequence. This is an extension to Perl. In non-UTF-8 mode \eR is equivalent to +the following: .sp - pcre this document - pcreapi details of PCRE's native C API - pcrebuild options for building PCRE - pcrecallout details of the callout feature - pcrecompat discussion of Perl compatibility - pcrecpp details of the C++ wrapper - pcregrep description of the \fBpcregrep\fP command - pcrematching discussion of the two matching algorithms - pcrepartial details of the partial matching facility -.\" JOIN - pcrepattern syntax and semantics of supported - regular expressions - pcreperform discussion of performance issues - pcreposix the POSIX-compatible C API - pcreprecompile details of saving and re-using precompiled patterns - pcresample discussion of the sample program - pcretest description of the \fBpcretest\fP testing command + (?>\er\en|\en|\ex0b|\ef|\er|\ex85) .sp -In addition, in the "man" and HTML formats, there is a short page for each -C library function, listing its arguments and results. +This is an example of an "atomic group", details of which are given +.\" HTML +.\" +below. +.\" +This particular group matches either the two-character sequence CR followed by +LF, or one of the single characters LF (linefeed, U+000A), VT (vertical tab, +U+000B), FF (formfeed, U+000C), CR (carriage return, U+000D), or NEL (next +line, U+0085). The two-character sequence is treated as a single unit that +cannot be split. +.P +In UTF-8 mode, two additional characters whose codepoints are greater than 255 +are added: LS (line separator, U+2028) and PS (paragraph separator, U+2029). +Unicode character property support is not needed for these characters to be +recognized. +.P +Inside a character class, \eR matches the letter "R". . . -.SH LIMITATIONS +.\" HTML +.SS Unicode character properties .rs .sp -There are some size limitations in PCRE but it is hoped that they will never in -practice be relevant. +When PCRE is built with Unicode character property support, three additional +escape sequences to match character properties are available when UTF-8 mode +is selected. They are: +.sp + \ep{\fIxx\fP} a character with the \fIxx\fP property + \eP{\fIxx\fP} a character without the \fIxx\fP property + \eX an extended Unicode sequence +.sp +The property names represented by \fIxx\fP above are limited to the Unicode +script names, the general category properties, and "Any", which matches any +character (including newline). Other properties such as "InMusicalSymbols" are +not currently supported by PCRE. Note that \eP{Any} does not match any +characters, so always causes a match failure. +.P +Sets of Unicode characters are defined as belonging to certain scripts. A +character from one of these sets can be matched using a script name. For +example: +.sp + \ep{Greek} + \eP{Han} +.sp +Those that are not part of an identified script are lumped together as +"Common". The current list of scripts is: .P -The maximum length of a compiled pattern is 65539 (sic) bytes if PCRE is -compiled with the default internal linkage size of 2. If you want to process -regular expressions that are truly enormous, you can compile PCRE with an -internal linkage size of 3 or 4 (see the \fBREADME\fP file in the source -distribution and the -.\" HREF -\fBpcrebuild\fP +Arabic, +Armenian, +Balinese, +Bengali, +Bopomofo, +Braille, +Buginese, +Buhid, +Canadian_Aboriginal, +Cherokee, +Common, +Coptic, +Cuneiform, +Cypriot, +Cyrillic, +Deseret, +Devanagari, +Ethiopic, +Georgian, +Glagolitic, +Gothic, +Greek, +Gujarati, +Gurmukhi, +Han, +Hangul, +Hanunoo, +Hebrew, +Hiragana, +Inherited, +Kannada, +Katakana, +Kharoshthi, +Khmer, +Lao, +Latin, +Limbu, +Linear_B, +Malayalam, +Mongolian, +Myanmar, +New_Tai_Lue, +Nko, +Ogham, +Old_Italic, +Old_Persian, +Oriya, +Osmanya, +Phags_Pa, +Phoenician, +Runic, +Shavian, +Sinhala, +Syloti_Nagri, +Syriac, +Tagalog, +Tagbanwa, +Tai_Le, +Tamil, +Telugu, +Thaana, +Thai, +Tibetan, +Tifinagh, +Ugaritic, +Yi. +.P +Each character has exactly one general category property, specified by a +two-letter abbreviation. For compatibility with Perl, negation can be specified +by including a circumflex between the opening brace and the property name. For +example, \ep{^Lu} is the same as \eP{Lu}. +.P +If only one letter is specified with \ep or \eP, it includes all the general +category properties that start with that letter. In this case, in the absence +of negation, the curly brackets in the escape sequence are optional; these two +examples have the same effect: +.sp + \ep{L} + \epL +.sp +The following general category property codes are supported: +.sp + C Other + Cc Control + Cf Format + Cn Unassigned + Co Private use + Cs Surrogate +.sp + L Letter + Ll Lower case letter + Lm Modifier letter + Lo Other letter + Lt Title case letter + Lu Upper case letter +.sp + M Mark + Mc Spacing mark + Me Enclosing mark + Mn Non-spacing mark +.sp + N Number + Nd Decimal number + Nl Letter number + No Other number +.sp + P Punctuation + Pc Connector punctuation + Pd Dash punctuation + Pe Close punctuation + Pf Final punctuation + Pi Initial punctuation + Po Other punctuation + Ps Open punctuation +.sp + S Symbol + Sc Currency symbol + Sk Modifier symbol + Sm Mathematical symbol + So Other symbol +.sp + Z Separator + Zl Line separator + Zp Paragraph separator + Zs Space separator +.sp +The special property L& is also supported: it matches a character that has +the Lu, Ll, or Lt property, in other words, a letter that is not classified as +a modifier or "other". +.P +The long synonyms for these properties that Perl supports (such as \ep{Letter}) +are not supported by PCRE, nor is it permitted to prefix any of these +properties with "Is". +.P +No character that is in the Unicode table has the Cn (unassigned) property. +Instead, this property is assumed for any code point that is not in the +Unicode table. +.P +Specifying caseless matching does not affect these escape sequences. For +example, \ep{Lu} always matches only upper case letters. +.P +The \eX escape matches any number of Unicode characters that form an extended +Unicode sequence. \eX is equivalent to +.sp + (?>\ePM\epM*) +.sp +That is, it matches a character without the "mark" property, followed by zero +or more characters with the "mark" property, and treats the sequence as an +atomic group +.\" HTML +.\" +(see below). .\" -documentation for details). In these cases the limit is substantially larger. -However, the speed of execution will be slower. +Characters with the "mark" property are typically accents that affect the +preceding character. +.P +Matching characters by Unicode property is not fast, because PCRE has to search +a structure that contains data for over fifteen thousand characters. That is +why the traditional escape sequences such as \ed and \ew do not use Unicode +properties in PCRE. +. +. +.\" HTML +.SS "Simple assertions" +.rs +.sp +The final use of backslash is for certain simple assertions. An assertion +specifies a condition that has to be met at a particular point in a match, +without consuming any characters from the subject string. The use of +subpatterns for more complicated assertions is described +.\" HTML +.\" +below. +.\" +The backslashed assertions are: +.sp + \eb matches at a word boundary + \eB matches when not at a word boundary + \eA matches at the start of the subject + \eZ matches at the end of the subject + also matches before a newline at the end of the subject + \ez matches only at the end of the subject + \eG matches at the first matching position in the subject +.sp +These assertions may not appear in character classes (but note that \eb has a +different meaning, namely the backspace character, inside a character class). .P -All values in repeating quantifiers must be less than 65536. -The maximum number of capturing subpatterns is 65535. +A word boundary is a position in the subject string where the current character +and the previous character do not both match \ew or \eW (i.e. one matches +\ew and the other matches \eW), or the start or end of the string if the +first or last character matches \ew, respectively. +.P +The \eA, \eZ, and \ez assertions differ from the traditional circumflex and +dollar (described in the next section) in that they only ever match at the very +start and end of the subject string, whatever options are set. Thus, they are +independent of multiline mode. These three assertions are not affected by the +PCRE_NOTBOL or PCRE_NOTEOL options, which affect only the behaviour of the +circumflex and dollar metacharacters. However, if the \fIstartoffset\fP +argument of \fBpcre_exec()\fP is non-zero, indicating that matching is to start +at a point other than the beginning of the subject, \eA can never match. The +difference between \eZ and \ez is that \eZ matches before a newline at the end +of the string as well as at the very end, whereas \ez matches only at the end. +.P +The \eG assertion is true only when the current matching position is at the +start point of the match, as specified by the \fIstartoffset\fP argument of +\fBpcre_exec()\fP. It differs from \eA when the value of \fIstartoffset\fP is +non-zero. By calling \fBpcre_exec()\fP multiple times with appropriate +arguments, you can mimic Perl's /g option, and it is in this kind of +implementation where \eG can be useful. +.P +Note, however, that PCRE's interpretation of \eG, as the start of the current +match, is subtly different from Perl's, which defines it as the end of the +previous match. In Perl, these can be different when the previously matched +string was empty. Because PCRE does just one match at a time, it cannot +reproduce this behaviour. +.P +If all the alternatives of a pattern begin with \eG, the expression is anchored +to the starting match position, and the "anchored" flag is set in the compiled +regular expression. +. +. +.SH "CIRCUMFLEX AND DOLLAR" +.rs +.sp +Outside a character class, in the default matching mode, the circumflex +character is an assertion that is true only if the current matching point is +at the start of the subject string. If the \fIstartoffset\fP argument of +\fBpcre_exec()\fP is non-zero, circumflex can never match if the PCRE_MULTILINE +option is unset. Inside a character class, circumflex has an entirely different +meaning +.\" HTML +.\" +(see below). +.\" .P -There is no limit to the number of non-capturing subpatterns, but the maximum -depth of nesting of all kinds of parenthesized subpattern, including capturing -subpatterns, assertions, and other types of subpattern, is 200. +Circumflex need not be the first character of the pattern if a number of +alternatives are involved, but it should be the first thing in each alternative +in which it appears if the pattern is ever to match that branch. If all +possible alternatives start with a circumflex, that is, if the pattern is +constrained to match only at the start of the subject, it is said to be an +"anchored" pattern. (There are also other constructs that can cause a pattern +to be anchored.) +.P +A dollar character is an assertion that is true only if the current matching +point is at the end of the subject string, or immediately before a newline +at the end of the string (by default). Dollar need not be the last character of +the pattern if a number of alternatives are involved, but it should be the last +item in any branch in which it appears. Dollar has no special meaning in a +character class. +.P +The meaning of dollar can be changed so that it matches only at the very end of +the string, by setting the PCRE_DOLLAR_ENDONLY option at compile time. This +does not affect the \eZ assertion. +.P +The meanings of the circumflex and dollar characters are changed if the +PCRE_MULTILINE option is set. When this is the case, a circumflex matches +immediately after internal newlines as well as at the start of the subject +string. It does not match after a newline that ends the string. A dollar +matches before any newlines in the string, as well as at the very end, when +PCRE_MULTILINE is set. When newline is specified as the two-character +sequence CRLF, isolated CR and LF characters do not indicate newlines. +.P +For example, the pattern /^abc$/ matches the subject string "def\enabc" (where +\en represents a newline) in multiline mode, but not otherwise. Consequently, +patterns that are anchored in single line mode because all branches start with +^ are not anchored in multiline mode, and a match for circumflex is possible +when the \fIstartoffset\fP argument of \fBpcre_exec()\fP is non-zero. The +PCRE_DOLLAR_ENDONLY option is ignored if PCRE_MULTILINE is set. +.P +Note that the sequences \eA, \eZ, and \ez can be used to match the start and +end of the subject in both modes, and if all branches of a pattern start with +\eA it is always anchored, whether or not PCRE_MULTILINE is set. +. +. +.SH "FULL STOP (PERIOD, DOT)" +.rs +.sp +Outside a character class, a dot in the pattern matches any one character in +the subject string except (by default) a character that signifies the end of a +line. In UTF-8 mode, the matched character may be more than one byte long. +.P +When a line ending is defined as a single character, dot never matches that +character; when the two-character sequence CRLF is used, dot does not match CR +if it is immediately followed by LF, but otherwise it matches all characters +(including isolated CRs and LFs). When any Unicode line endings are being +recognized, dot does not match CR or LF or any of the other line ending +characters. +.P +The behaviour of dot with regard to newlines can be changed. If the PCRE_DOTALL +option is set, a dot matches any one character, without exception. If the +two-character sequence CRLF is present in the subject string, it takes two dots +to match it. +.P +The handling of dot is entirely independent of the handling of circumflex and +dollar, the only relationship being that they both involve newlines. Dot has no +special meaning in a character class. +. +. +.SH "MATCHING A SINGLE BYTE" +.rs +.sp +Outside a character class, the escape sequence \eC matches any one byte, both +in and out of UTF-8 mode. Unlike a dot, it always matches any line-ending +characters. The feature is provided in Perl in order to match individual bytes +in UTF-8 mode. Because it breaks up UTF-8 characters into individual bytes, +what remains in the string may be a malformed UTF-8 string. For this reason, +the \eC escape sequence is best avoided. .P -The maximum length of a subject string is the largest positive number that an -integer variable can hold. However, when using the traditional matching -function, PCRE uses recursion to handle subpatterns and indefinite repetition. -This means that the available stack space may limit the size of a subject -string that can be processed by certain patterns. +PCRE does not allow \eC to appear in lookbehind assertions +.\" HTML +.\" +(described below), +.\" +because in UTF-8 mode this would make it impossible to calculate the length of +the lookbehind. +. +. +.\" HTML +.SH "SQUARE BRACKETS AND CHARACTER CLASSES" +.rs .sp -.\" HTML +An opening square bracket introduces a character class, terminated by a closing +square bracket. A closing square bracket on its own is not special. If a +closing square bracket is required as a member of the class, it should be the +first data character in the class (after an initial circumflex, if present) or +escaped with a backslash. +.P +A character class matches a single character in the subject. In UTF-8 mode, the +character may occupy more than one byte. A matched character must be in the set +of characters defined by the class, unless the first character in the class +definition is a circumflex, in which case the subject character must not be in +the set defined by the class. If a circumflex is actually required as a member +of the class, ensure it is not the first character, or escape it with a +backslash. +.P +For example, the character class [aeiou] matches any lower case vowel, while +[^aeiou] matches any character that is not a lower case vowel. Note that a +circumflex is just a convenient notation for specifying the characters that +are in the class by enumerating those that are not. A class that starts with a +circumflex is not an assertion: it still consumes a character from the subject +string, and therefore it fails if the current pointer is at the end of the +string. +.P +In UTF-8 mode, characters with values greater than 255 can be included in a +class as a literal string of bytes, or by using the \ex{ escaping mechanism. +.P +When caseless matching is set, any letters in a class represent both their +upper case and lower case versions, so for example, a caseless [aeiou] matches +"A" as well as "a", and a caseless [^aeiou] does not match "A", whereas a +caseful version would. In UTF-8 mode, PCRE always understands the concept of +case for characters whose values are less than 128, so caseless matching is +always possible. For characters with higher values, the concept of case is +supported if PCRE is compiled with Unicode property support, but not otherwise. +If you want to use caseless matching for characters 128 and above, you must +ensure that PCRE is compiled with Unicode property support as well as with +UTF-8 support. +.P +Characters that might indicate line breaks are never treated in any special way +when matching character classes, whatever line-ending sequence is in use, and +whatever setting of the PCRE_DOTALL and PCRE_MULTILINE options is used. A class +such as [^a] always matches one of these characters. +.P +The minus (hyphen) character can be used to specify a range of characters in a +character class. For example, [d-m] matches any letter between d and m, +inclusive. If a minus character is required in a class, it must be escaped with +a backslash or appear in a position where it cannot be interpreted as +indicating a range, typically as the first or last character in the class. +.P +It is not possible to have the literal character "]" as the end character of a +range. A pattern such as [W-]46] is interpreted as a class of two characters +("W" and "-") followed by a literal string "46]", so it would match "W46]" or +"-46]". However, if the "]" is escaped with a backslash it is interpreted as +the end of range, so [W-\e]46] is interpreted as a class containing a range +followed by two other characters. The octal or hexadecimal representation of +"]" can also be used to end a range. +.P +Ranges operate in the collating sequence of character values. They can also be +used for characters specified numerically, for example [\e000-\e037]. In UTF-8 +mode, ranges can include characters whose values are greater than 255, for +example [\ex{100}-\ex{2ff}]. +.P +If a range that includes letters is used when caseless matching is set, it +matches the letters in either case. For example, [W-c] is equivalent to +[][\e\e^_`wxyzabc], matched caselessly, and in non-UTF-8 mode, if character +tables for the "fr_FR" locale are in use, [\exc8-\excb] matches accented E +characters in both cases. In UTF-8 mode, PCRE supports the concept of case for +characters with values greater than 128 only when it is compiled with Unicode +property support. +.P +The character types \ed, \eD, \ep, \eP, \es, \eS, \ew, and \eW may also appear +in a character class, and add the characters that they match to the class. For +example, [\edABCDEF] matches any hexadecimal digit. A circumflex can +conveniently be used with the upper case character types to specify a more +restricted set of characters than the matching lower case type. For example, +the class [^\eW_] matches any letter or digit, but not underscore. +.P +The only metacharacters that are recognized in character classes are backslash, +hyphen (only where it can be interpreted as specifying a range), circumflex +(only at the start), opening square bracket (only when it can be interpreted as +introducing a POSIX class name - see the next section), and the terminating +closing square bracket. However, escaping other non-alphanumeric characters +does no harm. . . -.SH "UTF-8 AND UNICODE PROPERTY SUPPORT" +.SH "POSIX CHARACTER CLASSES" .rs .sp -From release 3.3, PCRE has had some support for character strings encoded in -the UTF-8 format. For release 4.0 this was greatly extended to cover most -common requirements, and in release 5.0 additional support for Unicode general -category properties was added. +Perl supports the POSIX notation for character classes. This uses names +enclosed by [: and :] within the enclosing square brackets. PCRE also supports +this notation. For example, +.sp + [01[:alpha:]%] +.sp +matches "0", "1", any alphabetic character, or "%". The supported class names +are +.sp + alnum letters and digits + alpha letters + ascii character codes 0 - 127 + blank space or tab only + cntrl control characters + digit decimal digits (same as \ed) + graph printing characters, excluding space + lower lower case letters + print printing characters, including space + punct printing characters, excluding letters and digits + space white space (not quite the same as \es) + upper upper case letters + word "word" characters (same as \ew) + xdigit hexadecimal digits +.sp +The "space" characters are HT (9), LF (10), VT (11), FF (12), CR (13), and +space (32). Notice that this list includes the VT character (code 11). This +makes "space" different to \es, which does not include VT (for Perl +compatibility). +.P +The name "word" is a Perl extension, and "blank" is a GNU extension from Perl +5.8. Another Perl extension is negation, which is indicated by a ^ character +after the colon. For example, +.sp + [12[:^digit:]] +.sp +matches "1", "2", or any non-digit. PCRE (and Perl) also recognize the POSIX +syntax [.ch.] and [=ch=] where "ch" is a "collating element", but these are not +supported, and an error is given if they are encountered. .P -In order process UTF-8 strings, you must build PCRE to include UTF-8 support in -the code, and, in addition, you must call -.\" HREF -\fBpcre_compile()\fP +In UTF-8 mode, characters with values greater than 128 do not match any of +the POSIX character classes. +. +. +.SH "VERTICAL BAR" +.rs +.sp +Vertical bar characters are used to separate alternative patterns. For example, +the pattern +.sp + gilbert|sullivan +.sp +matches either "gilbert" or "sullivan". Any number of alternatives may appear, +and an empty alternative is permitted (matching the empty string). The matching +process tries each alternative in turn, from left to right, and the first one +that succeeds is used. If the alternatives are within a subpattern +.\" HTML +.\" +(defined below), .\" -with the PCRE_UTF8 option flag. When you do this, both the pattern and any -subject strings that are matched against it are treated as UTF-8 strings -instead of just strings of bytes. +"succeeds" means matching the rest of the main pattern as well as the +alternative in the subpattern. +. +. +.SH "INTERNAL OPTION SETTING" +.rs +.sp +The settings of the PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, and +PCRE_EXTENDED options can be changed from within the pattern by a sequence of +Perl option letters enclosed between "(?" and ")". The option letters are +.sp + i for PCRE_CASELESS + m for PCRE_MULTILINE + s for PCRE_DOTALL + x for PCRE_EXTENDED +.sp +For example, (?im) sets caseless, multiline matching. It is also possible to +unset these options by preceding the letter with a hyphen, and a combined +setting and unsetting such as (?im-sx), which sets PCRE_CASELESS and +PCRE_MULTILINE while unsetting PCRE_DOTALL and PCRE_EXTENDED, is also +permitted. If a letter appears both before and after the hyphen, the option is +unset. +.P +When an option change occurs at top level (that is, not inside subpattern +parentheses), the change applies to the remainder of the pattern that follows. +If the change is placed right at the start of a pattern, PCRE extracts it into +the global options (and it will therefore show up in data extracted by the +\fBpcre_fullinfo()\fP function). .P -If you compile PCRE with UTF-8 support, but do not use it at run time, the -library will be a bit bigger, but the additional run time overhead is limited -to testing the PCRE_UTF8 flag in several places, so should not be very large. +An option change within a subpattern (see below for a description of +subpatterns) affects only that part of the current pattern that follows it, so +.sp + (a(?i)b)c +.sp +matches abc and aBc and no other strings (assuming PCRE_CASELESS is not used). +By this means, options can be made to have different settings in different +parts of the pattern. Any changes made in one alternative do carry on +into subsequent branches within the same subpattern. For example, +.sp + (a(?i)b|c) +.sp +matches "ab", "aB", "c", and "C", even though when matching "C" the first +branch is abandoned before the option setting. This is because the effects of +option settings happen at compile time. There would be some very weird +behaviour otherwise. +.P +The PCRE-specific options PCRE_DUPNAMES, PCRE_UNGREEDY, and PCRE_EXTRA can be +changed in the same way as the Perl-compatible options by using the characters +J, U and X respectively. +. +. +.\" HTML +.SH SUBPATTERNS +.rs +.sp +Subpatterns are delimited by parentheses (round brackets), which can be nested. +Turning part of a pattern into a subpattern does two things: +.sp +1. It localizes a set of alternatives. For example, the pattern +.sp + cat(aract|erpillar|) +.sp +matches one of the words "cat", "cataract", or "caterpillar". Without the +parentheses, it would match "cataract", "erpillar" or an empty string. +.sp +2. It sets up the subpattern as a capturing subpattern. This means that, when +the whole pattern matches, that portion of the subject string that matched the +subpattern is passed back to the caller via the \fIovector\fP argument of +\fBpcre_exec()\fP. Opening parentheses are counted from left to right (starting +from 1) to obtain numbers for the capturing subpatterns. +.P +For example, if the string "the red king" is matched against the pattern +.sp + the ((red|white) (king|queen)) +.sp +the captured substrings are "red king", "red", and "king", and are numbered 1, +2, and 3, respectively. +.P +The fact that plain parentheses fulfil two functions is not always helpful. +There are often times when a grouping subpattern is required without a +capturing requirement. If an opening parenthesis is followed by a question mark +and a colon, the subpattern does not do any capturing, and is not counted when +computing the number of any subsequent capturing subpatterns. For example, if +the string "the white queen" is matched against the pattern +.sp + the ((?:red|white) (king|queen)) +.sp +the captured substrings are "white queen" and "queen", and are numbered 1 and +2. The maximum number of capturing subpatterns is 65535. +.P +As a convenient shorthand, if any option settings are required at the start of +a non-capturing subpattern, the option letters may appear between the "?" and +the ":". Thus the two patterns +.sp + (?i:saturday|sunday) + (?:(?i)saturday|sunday) +.sp +match exactly the same set of strings. Because alternative branches are tried +from left to right, and options are not reset until the end of the subpattern +is reached, an option setting in one branch does affect subsequent branches, so +the above patterns match "SUNDAY" as well as "Saturday". +. +. +.SH "NAMED SUBPATTERNS" +.rs +.sp +Identifying capturing parentheses by number is simple, but it can be very hard +to keep track of the numbers in complicated regular expressions. Furthermore, +if an expression is modified, the numbers may change. To help with this +difficulty, PCRE supports the naming of subpatterns. This feature was not +added to Perl until release 5.10. Python had the feature earlier, and PCRE +introduced it at release 4.0, using the Python syntax. PCRE now supports both +the Perl and the Python syntax. +.P +In PCRE, a subpattern can be named in one of three ways: (?...) or +(?'name'...) as in Perl, or (?P...) as in Python. References to capturing +parentheses from other parts of the pattern, such as +.\" HTML +.\" +backreferences, +.\" +.\" HTML +.\" +recursion, +.\" +and +.\" HTML +.\" +conditions, +.\" +can be made by name as well as by number. .P -If PCRE is built with Unicode character property support (which implies UTF-8 -support), the escape sequences \ep{..}, \eP{..}, and \eX are supported. -The available properties that can be tested are limited to the general -category properties such as Lu for an upper case letter or Nd for a decimal -number, the Unicode script names such as Arabic or Han, and the derived -properties Any and L&. A full list is given in the +Names consist of up to 32 alphanumeric characters and underscores. Named +capturing parentheses are still allocated numbers as well as names, exactly as +if the names were not present. The PCRE API provides function calls for +extracting the name-to-number translation table from a compiled pattern. There +is also a convenience function for extracting a captured substring by name. +.P +By default, a name must be unique within a pattern, but it is possible to relax +this constraint by setting the PCRE_DUPNAMES option at compile time. This can +be useful for patterns where only one instance of the named parentheses can +match. Suppose you want to match the name of a weekday, either as a 3-letter +abbreviation or as the full name, and in both cases you want to extract the +abbreviation. This pattern (ignoring the line breaks) does the job: +.sp + (?Mon|Fri|Sun)(?:day)?| + (?Tue)(?:sday)?| + (?Wed)(?:nesday)?| + (?Thu)(?:rsday)?| + (?Sat)(?:urday)? +.sp +There are five capturing substrings, but only one is ever set after a match. +The convenience function for extracting the data by name returns the substring +for the first (and in this example, the only) subpattern of that name that +matched. This saves searching to find which numbered subpattern it was. If you +make a reference to a non-unique named subpattern from elsewhere in the +pattern, the one that corresponds to the lowest number is used. For further +details of the interfaces for handling named subpatterns, see the .\" HREF -\fBpcrepattern\fP +\fBpcreapi\fP .\" -documentation. Only the short names for properties are supported. For example, -\ep{L} matches a letter. Its Perl synonym, \ep{Letter}, is not supported. -Furthermore, in Perl, many properties may optionally be prefixed by "Is", for -compatibility with Perl 5.6. PCRE does not support this. +documentation. +. +. +.SH REPETITION +.rs +.sp +Repetition is specified by quantifiers, which can follow any of the following +items: +.sp + a literal data character + the dot metacharacter + the \eC escape sequence + the \eX escape sequence (in UTF-8 mode with Unicode properties) + the \eR escape sequence + an escape such as \ed that matches a single character + a character class + a back reference (see next section) + a parenthesized subpattern (unless it is an assertion) +.sp +The general repetition quantifier specifies a minimum and maximum number of +permitted matches, by giving the two numbers in curly brackets (braces), +separated by a comma. The numbers must be less than 65536, and the first must +be less than or equal to the second. For example: +.sp + z{2,4} +.sp +matches "zz", "zzz", or "zzzz". A closing brace on its own is not a special +character. If the second number is omitted, but the comma is present, there is +no upper limit; if the second number and the comma are both omitted, the +quantifier specifies an exact number of required matches. Thus +.sp + [aeiou]{3,} +.sp +matches at least 3 successive vowels, but may match many more, while +.sp + \ed{8} +.sp +matches exactly 8 digits. An opening curly bracket that appears in a position +where a quantifier is not allowed, or one that does not match the syntax of a +quantifier, is taken as a literal character. For example, {,6} is not a +quantifier, but a literal string of four characters. +.P +In UTF-8 mode, quantifiers apply to UTF-8 characters rather than to individual +bytes. Thus, for example, \ex{100}{2} matches two UTF-8 characters, each of +which is represented by a two-byte sequence. Similarly, when Unicode property +support is available, \eX{3} matches three Unicode extended sequences, each of +which may be several bytes long (and they may be of different lengths). .P -The following comments apply when PCRE is running in UTF-8 mode: +The quantifier {0} is permitted, causing the expression to behave as if the +previous item and the quantifier were not present. .P -1. When you set the PCRE_UTF8 flag, the strings passed as patterns and subjects -are checked for validity on entry to the relevant functions. If an invalid -UTF-8 string is passed, an error return is given. In some situations, you may -already know that your strings are valid, and therefore want to skip these -checks in order to improve performance. If you set the PCRE_NO_UTF8_CHECK flag -at compile time or at run time, PCRE assumes that the pattern or subject it -is given (respectively) contains only valid UTF-8 codes. In this case, it does -not diagnose an invalid UTF-8 string. If you pass an invalid UTF-8 string to -PCRE when PCRE_NO_UTF8_CHECK is set, the results are undefined. Your program -may crash. +For convenience, the three most common quantifiers have single-character +abbreviations: +.sp + * is equivalent to {0,} + + is equivalent to {1,} + ? is equivalent to {0,1} +.sp +It is possible to construct infinite loops by following a subpattern that can +match no characters with a quantifier that has no upper limit, for example: +.sp + (a?)* +.sp +Earlier versions of Perl and PCRE used to give an error at compile time for +such patterns. However, because there are cases where this can be useful, such +patterns are now accepted, but if any repetition of the subpattern does in fact +match no characters, the loop is forcibly broken. +.P +By default, the quantifiers are "greedy", that is, they match as much as +possible (up to the maximum number of permitted times), without causing the +rest of the pattern to fail. The classic example of where this gives problems +is in trying to match comments in C programs. These appear between /* and */ +and within the comment, individual * and / characters may appear. An attempt to +match C comments by applying the pattern +.sp + /\e*.*\e*/ +.sp +to the string +.sp + /* first comment */ not comment /* second comment */ +.sp +fails, because it matches the entire string owing to the greediness of the .* +item. .P -2. An unbraced hexadecimal escape sequence (such as \exb3) matches a two-byte -UTF-8 character if the value is greater than 127. +However, if a quantifier is followed by a question mark, it ceases to be +greedy, and instead matches the minimum number of times possible, so the +pattern +.sp + /\e*.*?\e*/ +.sp +does the right thing with the C comments. The meaning of the various +quantifiers is not otherwise changed, just the preferred number of matches. +Do not confuse this use of question mark with its use as a quantifier in its +own right. Because it has two uses, it can sometimes appear doubled, as in +.sp + \ed??\ed +.sp +which matches one digit by preference, but can match two if that is the only +way the rest of the pattern matches. .P -3. Repeat quantifiers apply to complete UTF-8 characters, not to individual -bytes, for example: \ex{100}{3}. +If the PCRE_UNGREEDY option is set (an option that is not available in Perl), +the quantifiers are not greedy by default, but individual ones can be made +greedy by following them with a question mark. In other words, it inverts the +default behaviour. +.P +When a parenthesized subpattern is quantified with a minimum repeat count that +is greater than 1 or with a limited maximum, more memory is required for the +compiled pattern, in proportion to the size of the minimum or maximum. +.P +If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent +to Perl's /s) is set, thus allowing the dot to match newlines, the pattern is +implicitly anchored, because whatever follows will be tried against every +character position in the subject string, so there is no point in retrying the +overall match at any position after the first. PCRE normally treats such a +pattern as though it were preceded by \eA. +.P +In cases where it is known that the subject string contains no newlines, it is +worth setting PCRE_DOTALL in order to obtain this optimization, or +alternatively using ^ to indicate anchoring explicitly. +.P +However, there is one situation where the optimization cannot be used. When .* +is inside capturing parentheses that are the subject of a backreference +elsewhere in the pattern, a match at the start may fail where a later one +succeeds. Consider, for example: +.sp + (.*)abc\e1 +.sp +If the subject is "xyz123abc123" the match point is the fourth character. For +this reason, such a pattern is not implicitly anchored. .P -4. The dot metacharacter matches one UTF-8 character instead of a single byte. +When a capturing subpattern is repeated, the value captured is the substring +that matched the final iteration. For example, after +.sp + (tweedle[dume]{3}\es*)+ +.sp +has matched "tweedledum tweedledee" the value of the captured substring is +"tweedledee". However, if there are nested capturing subpatterns, the +corresponding captured values may have been set in previous iterations. For +example, after +.sp + /(a|(b))+/ +.sp +matches "aba" the value of the second captured substring is "b". +. +. +.\" HTML +.SH "ATOMIC GROUPING AND POSSESSIVE QUANTIFIERS" +.rs +.sp +With both maximizing ("greedy") and minimizing ("ungreedy" or "lazy") +repetition, failure of what follows normally causes the repeated item to be +re-evaluated to see if a different number of repeats allows the rest of the +pattern to match. Sometimes it is useful to prevent this, either to change the +nature of the match, or to cause it fail earlier than it otherwise might, when +the author of the pattern knows there is no point in carrying on. .P -5. The escape sequence \eC can be used to match a single byte in UTF-8 mode, -but its use can lead to some strange effects. This facility is not available in -the alternative matching function, \fBpcre_dfa_exec()\fP. +Consider, for example, the pattern \ed+foo when applied to the subject line +.sp + 123456bar +.sp +After matching all 6 digits and then failing to match "foo", the normal +action of the matcher is to try again with only 5 digits matching the \ed+ +item, and then with 4, and so on, before ultimately failing. "Atomic grouping" +(a term taken from Jeffrey Friedl's book) provides the means for specifying +that once a subpattern has matched, it is not to be re-evaluated in this way. +.P +If we use atomic grouping for the previous example, the matcher gives up +immediately on failing to match "foo" the first time. The notation is a kind of +special parenthesis, starting with (?> as in this example: +.sp + (?>\ed+)foo +.sp +This kind of parenthesis "locks up" the part of the pattern it contains once +it has matched, and a failure further into the pattern is prevented from +backtracking into it. Backtracking past it to previous items, however, works as +normal. +.P +An alternative description is that a subpattern of this type matches the string +of characters that an identical standalone pattern would match, if anchored at +the current point in the subject string. +.P +Atomic grouping subpatterns are not capturing subpatterns. Simple cases such as +the above example can be thought of as a maximizing repeat that must swallow +everything it can. So, while both \ed+ and \ed+? are prepared to adjust the +number of digits they match in order to make the rest of the pattern match, +(?>\ed+) can only match an entire sequence of digits. +.P +Atomic groups in general can of course contain arbitrarily complicated +subpatterns, and can be nested. However, when the subpattern for an atomic +group is just a single repeated item, as in the example above, a simpler +notation, called a "possessive quantifier" can be used. This consists of an +additional + character following a quantifier. Using this notation, the +previous example can be rewritten as +.sp + \ed++foo +.sp +Possessive quantifiers are always greedy; the setting of the PCRE_UNGREEDY +option is ignored. They are a convenient notation for the simpler forms of +atomic group. However, there is no difference in the meaning of a possessive +quantifier and the equivalent atomic group, though there may be a performance +difference; possessive quantifiers should be slightly faster. +.P +The possessive quantifier syntax is an extension to the Perl 5.8 syntax. +Jeffrey Friedl originated the idea (and the name) in the first edition of his +book. Mike McCloskey liked it, so implemented it when he built Sun's Java +package, and PCRE copied it from there. It ultimately found its way into Perl +at release 5.10. +.P +PCRE has an optimization that automatically "possessifies" certain simple +pattern constructs. For example, the sequence A+B is treated as A++B because +there is no point in backtracking into a sequence of A's when B must follow. +.P +When a pattern contains an unlimited repeat inside a subpattern that can itself +be repeated an unlimited number of times, the use of an atomic group is the +only way to avoid some failing matches taking a very long time indeed. The +pattern +.sp + (\eD+|<\ed+>)*[!?] +.sp +matches an unlimited number of substrings that either consist of non-digits, or +digits enclosed in <>, followed by either ! or ?. When it matches, it runs +quickly. However, if it is applied to +.sp + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +.sp +it takes a long time before reporting failure. This is because the string can +be divided between the internal \eD+ repeat and the external * repeat in a +large number of ways, and all have to be tried. (The example uses [!?] rather +than a single character at the end, because both PCRE and Perl have an +optimization that allows for fast failure when a single character is used. They +remember the last single character that is required for a match, and fail early +if it is not present in the string.) If the pattern is changed so that it uses +an atomic group, like this: +.sp + ((?>\eD+)|<\ed+>)*[!?] +.sp +sequences of non-digits cannot be broken, and failure happens quickly. +. +. +.\" HTML +.SH "BACK REFERENCES" +.rs +.sp +Outside a character class, a backslash followed by a digit greater than 0 (and +possibly further digits) is a back reference to a capturing subpattern earlier +(that is, to its left) in the pattern, provided there have been that many +previous capturing left parentheses. +.P +However, if the decimal number following the backslash is less than 10, it is +always taken as a back reference, and causes an error only if there are not +that many capturing left parentheses in the entire pattern. In other words, the +parentheses that are referenced need not be to the left of the reference for +numbers less than 10. A "forward back reference" of this type can make sense +when a repetition is involved and the subpattern to the right has participated +in an earlier iteration. +.P +It is not possible to have a numerical "forward back reference" to a subpattern +whose number is 10 or more using this syntax because a sequence such as \e50 is +interpreted as a character defined in octal. See the subsection entitled +"Non-printing characters" +.\" HTML +.\" +above +.\" +for further details of the handling of digits following a backslash. There is +no such problem when named parentheses are used. A back reference to any +subpattern is possible using named parentheses (see below). +.P +Another way of avoiding the ambiguity inherent in the use of digits following a +backslash is to use the \eg escape sequence, which is a feature introduced in +Perl 5.10. This escape must be followed by a positive or a negative number, +optionally enclosed in braces. These examples are all identical: +.sp + (ring), \e1 + (ring), \eg1 + (ring), \eg{1} +.sp +A positive number specifies an absolute reference without the ambiguity that is +present in the older syntax. It is also useful when literal digits follow the +reference. A negative number is a relative reference. Consider this example: +.sp + (abc(def)ghi)\eg{-1} +.sp +The sequence \eg{-1} is a reference to the most recently started capturing +subpattern before \eg, that is, is it equivalent to \e2. Similarly, \eg{-2} +would be equivalent to \e1. The use of relative references can be helpful in +long patterns, and also in patterns that are created by joining together +fragments that contain references within themselves. +.P +A back reference matches whatever actually matched the capturing subpattern in +the current subject string, rather than anything matching the subpattern +itself (see +.\" HTML +.\" +"Subpatterns as subroutines" +.\" +below for a way of doing that). So the pattern +.sp + (sens|respons)e and \e1ibility +.sp +matches "sense and sensibility" and "response and responsibility", but not +"sense and responsibility". If caseful matching is in force at the time of the +back reference, the case of letters is relevant. For example, +.sp + ((?i)rah)\es+\e1 +.sp +matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original +capturing subpattern is matched caselessly. .P -6. The character escapes \eb, \eB, \ed, \eD, \es, \eS, \ew, and \eW correctly -test characters of any code value, but the characters that PCRE recognizes as -digits, spaces, or word characters remain the same set as before, all with -values less than 256. This remains true even when PCRE includes Unicode -property support, because to do otherwise would slow down PCRE in many common -cases. If you really want to test for a wider sense of, say, "digit", you -must use Unicode property tests such as \ep{Nd}. +Back references to named subpatterns use the Perl syntax \ek or \ek'name' +or the Python syntax (?P=name). We could rewrite the above example in either of +the following ways: +.sp + (?(?i)rah)\es+\ek + (?P(?i)rah)\es+(?P=p1) +.sp +A subpattern that is referenced by name may appear in the pattern before or +after the reference. .P -7. Similarly, characters that match the POSIX named character classes are all -low-valued characters. +There may be more than one back reference to the same subpattern. If a +subpattern has not actually been used in a particular match, any back +references to it always fail. For example, the pattern +.sp + (a|(bc))\e2 +.sp +always fails if it starts to match "a" rather than "bc". Because there may be +many capturing parentheses in a pattern, all digits following the backslash are +taken as part of a potential back reference number. If the pattern continues +with a digit character, some delimiter must be used to terminate the back +reference. If the PCRE_EXTENDED option is set, this can be whitespace. +Otherwise an empty comment (see +.\" HTML +.\" +"Comments" +.\" +below) can be used. .P -8. Case-insensitive matching applies only to characters whose values are less -than 128, unless PCRE is built with Unicode property support. Even when Unicode -property support is available, PCRE still uses its own character tables when -checking the case of low-valued characters, so as not to degrade performance. -The Unicode property information is used only for characters with higher -values. Even when Unicode property support is available, PCRE supports -case-insensitive matching only when there is a one-to-one mapping between a -letter's cases. There are a small number of many-to-one mappings in Unicode; -these are not supported by PCRE. +A back reference that occurs inside the parentheses to which it refers fails +when the subpattern is first used, so, for example, (a\e1) never matches. +However, such references can be useful inside repeated subpatterns. For +example, the pattern +.sp + (a|b\e1)+ +.sp +matches any number of "a"s and also "aba", "ababbaa" etc. At each iteration of +the subpattern, the back reference matches the character string corresponding +to the previous iteration. In order for this to work, the pattern must be such +that the first iteration does not need to match the back reference. This can be +done using alternation, as in the example above, or by a quantifier with a +minimum of zero. . -.SH AUTHOR +. +.\" HTML +.SH ASSERTIONS .rs .sp -Philip Hazel -.br -University Computing Service, -.br -Cambridge CB2 3QG, England. +An assertion is a test on the characters following or preceding the current +matching point that does not actually consume any characters. The simple +assertions coded as \eb, \eB, \eA, \eG, \eZ, \ez, ^ and $ are described +.\" HTML +.\" +above. +.\" .P -Putting an actual email address here seems to have been a spam magnet, so I've -taken it away. If you want to email me, use my initial and surname, separated -by a dot, at the domain ucs.cam.ac.uk. +More complicated assertions are coded as subpatterns. There are two kinds: +those that look ahead of the current position in the subject string, and those +that look behind it. An assertion subpattern is matched in the normal way, +except that it does not cause the current matching position to be changed. +.P +Assertion subpatterns are not capturing subpatterns, and may not be repeated, +because it makes no sense to assert the same thing several times. If any kind +of assertion contains capturing subpatterns within it, these are counted for +the purposes of numbering the capturing subpatterns in the whole pattern. +However, substring capturing is carried out only for positive assertions, +because it does not make sense for negative assertions. +. +. +.SS "Lookahead assertions" +.rs +.sp +Lookahead assertions start with (?= for positive assertions and (?! for +negative assertions. For example, +.sp + \ew+(?=;) +.sp +matches a word followed by a semicolon, but does not include the semicolon in +the match, and +.sp + foo(?!bar) +.sp +matches any occurrence of "foo" that is not followed by "bar". Note that the +apparently similar pattern +.sp + (?!foo)bar +.sp +does not find an occurrence of "bar" that is preceded by something other than +"foo"; it finds any occurrence of "bar" whatsoever, because the assertion +(?!foo) is always true when the next three characters are "bar". A +lookbehind assertion is needed to achieve the other effect. +.P +If you want to force a matching failure at some point in a pattern, the most +convenient way to do it is with (?!) because an empty string always matches, so +an assertion that requires there not to be an empty string must always fail. +. +. +.\" HTML +.SS "Lookbehind assertions" +.rs +.sp +Lookbehind assertions start with (?<= for positive assertions and (? +.SH "CONDITIONAL SUBPATTERNS" +.rs +.sp +It is possible to cause the matching process to obey a subpattern +conditionally or to choose between two alternative subpatterns, depending on +the result of an assertion, or whether a previous capturing subpattern matched +or not. The two possible forms of conditional subpattern are +.sp + (?(condition)yes-pattern) + (?(condition)yes-pattern|no-pattern) +.sp +If the condition is satisfied, the yes-pattern is used; otherwise the +no-pattern (if present) is used. If there are more than two alternatives in the +subpattern, a compile-time error occurs. +.P +There are four kinds of condition: references to subpatterns, references to +recursion, a pseudo-condition called DEFINE, and assertions. +. +.SS "Checking for a used subpattern by number" +.rs +.sp +If the text between the parentheses consists of a sequence of digits, the +condition is true if the capturing subpattern of that number has previously +matched. +.P +Consider the following pattern, which contains non-significant white space to +make it more readable (assume the PCRE_EXTENDED option) and to divide it into +three parts for ease of discussion: +.sp + ( \e( )? [^()]+ (?(1) \e) ) +.sp +The first part matches an optional opening parenthesis, and if that +character is present, sets it as the first captured substring. The second part +matches one or more characters that are not parentheses. The third part is a +conditional subpattern that tests whether the first set of parentheses matched +or not. If they did, that is, if subject started with an opening parenthesis, +the condition is true, and so the yes-pattern is executed and a closing +parenthesis is required. Otherwise, since no-pattern is not present, the +subpattern matches nothing. In other words, this pattern matches a sequence of +non-parentheses, optionally enclosed in parentheses. +. +.SS "Checking for a used subpattern by name" +.rs +.sp +Perl uses the syntax (?()...) or (?('name')...) to test for a used +subpattern by name. For compatibility with earlier versions of PCRE, which had +this facility before Perl, the syntax (?(name)...) is also recognized. However, +there is a possible ambiguity with this syntax, because subpattern names may +consist entirely of digits. PCRE looks first for a named subpattern; if it +cannot find one and the name consists entirely of digits, PCRE looks for a +subpattern of that number, which must be greater than zero. Using subpattern +names that consist entirely of digits is not recommended. +.P +Rewriting the above example to use a named subpattern gives this: +.sp + (? \e( )? [^()]+ (?() \e) ) +.sp +. +.SS "Checking for pattern recursion" +.rs +.sp +If the condition is the string (R), and there is no subpattern with the name R, +the condition is true if a recursive call to the whole pattern or any +subpattern has been made. If digits or a name preceded by ampersand follow the +letter R, for example: +.sp + (?(R3)...) or (?(R&name)...) +.sp +the condition is true if the most recent recursion is into the subpattern whose +number or name is given. This condition does not check the entire recursion +stack. +.P +At "top level", all these recursion test conditions are false. Recursive +patterns are described below. +. +.SS "Defining subpatterns for use by reference only" +.rs +.sp +If the condition is the string (DEFINE), and there is no subpattern with the +name DEFINE, the condition is always false. In this case, there may be only one +alternative in the subpattern. It is always skipped if control reaches this +point in the pattern; the idea of DEFINE is that it can be used to define +"subroutines" that can be referenced from elsewhere. (The use of "subroutines" +is described below.) For example, a pattern to match an IPv4 address could be +written like this (ignore whitespace and line breaks): +.sp + (?(DEFINE) (? 2[0-4]\ed | 25[0-5] | 1\ed\ed | [1-9]?\ed) ) + \eb (?&byte) (\e.(?&byte)){3} \eb +.sp +The first part of the pattern is a DEFINE group inside which a another group +named "byte" is defined. This matches an individual component of an IPv4 +address (a number less than 256). When matching takes place, this part of the +pattern is skipped because DEFINE acts like a false condition. +.P +The rest of the pattern uses references to the named group to match the four +dot-separated components of an IPv4 address, insisting on a word boundary at +each end. +. +.SS "Assertion conditions" +.rs +.sp +If the condition is not in any of the above formats, it must be an assertion. +This may be a positive or negative lookahead or lookbehind assertion. Consider +this pattern, again containing non-significant white space, and with the two +alternatives on the second line: +.sp + (?(?=[^a-z]*[a-z]) + \ed{2}-[a-z]{3}-\ed{2} | \ed{2}-\ed{2}-\ed{2} ) +.sp +The condition is a positive lookahead assertion that matches an optional +sequence of non-letters followed by a letter. In other words, it tests for the +presence of at least one letter in the subject. If a letter is found, the +subject is matched against the first alternative; otherwise it is matched +against the second. This pattern matches strings in one of the two forms +dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits. +. +. +.\" HTML +.SH COMMENTS +.rs +.sp +The sequence (?# marks the start of a comment that continues up to the next +closing parenthesis. Nested parentheses are not permitted. The characters +that make up a comment play no part in the pattern matching at all. +.P +If the PCRE_EXTENDED option is set, an unescaped # character outside a +character class introduces a comment that continues to immediately after the +next newline in the pattern. +. +. +.\" HTML +.SH "RECURSIVE PATTERNS" +.rs +.sp +Consider the problem of matching a string in parentheses, allowing for +unlimited nested parentheses. Without the use of recursion, the best that can +be done is to use a pattern that matches up to some fixed depth of nesting. It +is not possible to handle an arbitrary nesting depth. +.P +For some time, Perl has provided a facility that allows regular expressions to +recurse (amongst other things). It does this by interpolating Perl code in the +expression at run time, and the code can refer to the expression itself. A Perl +pattern using code interpolation to solve the parentheses problem can be +created like this: +.sp + $re = qr{\e( (?: (?>[^()]+) | (?p{$re}) )* \e)}x; +.sp +The (?p{...}) item interpolates Perl code at run time, and in this case refers +recursively to the pattern in which it appears. +.P +Obviously, PCRE cannot support the interpolation of Perl code. Instead, it +supports special syntax for recursion of the entire pattern, and also for +individual subpattern recursion. After its introduction in PCRE and Python, +this kind of recursion was introduced into Perl at release 5.10. +.P +A special item that consists of (? followed by a number greater than zero and a +closing parenthesis is a recursive call of the subpattern of the given number, +provided that it occurs inside that subpattern. (If not, it is a "subroutine" +call, which is described in the next section.) The special item (?R) or (?0) is +a recursive call of the entire regular expression. +.P +In PCRE (like Python, but unlike Perl), a recursive subpattern call is always +treated as an atomic group. That is, once it has matched some of the subject +string, it is never re-entered, even if it contains untried alternatives and +there is a subsequent matching failure. +.P +This PCRE pattern solves the nested parentheses problem (assume the +PCRE_EXTENDED option is set so that white space is ignored): +.sp + \e( ( (?>[^()]+) | (?R) )* \e) +.sp +First it matches an opening parenthesis. Then it matches any number of +substrings which can either be a sequence of non-parentheses, or a recursive +match of the pattern itself (that is, a correctly parenthesized substring). +Finally there is a closing parenthesis. +.P +If this were part of a larger pattern, you would not want to recurse the entire +pattern, so instead you could use this: +.sp + ( \e( ( (?>[^()]+) | (?1) )* \e) ) +.sp +We have put the pattern into parentheses, and caused the recursion to refer to +them instead of the whole pattern. In a larger pattern, keeping track of +parenthesis numbers can be tricky. It may be more convenient to use named +parentheses instead. The Perl syntax for this is (?&name); PCRE's earlier +syntax (?P>name) is also supported. We could rewrite the above example as +follows: +.sp + (? \e( ( (?>[^()]+) | (?&pn) )* \e) ) +.sp +If there is more than one subpattern with the same name, the earliest one is +used. This particular example pattern contains nested unlimited repeats, and so +the use of atomic grouping for matching strings of non-parentheses is important +when applying the pattern to strings that do not match. For example, when this +pattern is applied to +.sp + (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() +.sp +it yields "no match" quickly. However, if atomic grouping is not used, +the match runs for a very long time indeed because there are so many different +ways the + and * repeats can carve up the subject, and all have to be tested +before failure can be reported. +.P +At the end of a match, the values set for any capturing subpatterns are those +from the outermost level of the recursion at which the subpattern value is set. +If you want to obtain intermediate values, a callout function can be used (see +below and the +.\" HREF +\fBpcrecallout\fP +.\" +documentation). If the pattern above is matched against +.sp + (ab(cd)ef) +.sp +the value for the capturing parentheses is "ef", which is the last value taken +on at the top level. If additional parentheses are added, giving +.sp + \e( ( ( (?>[^()]+) | (?R) )* ) \e) + ^ ^ + ^ ^ +.sp +the string they capture is "ab(cd)ef", the contents of the top level +parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE +has to obtain extra memory to store data during a recursion, which it does by +using \fBpcre_malloc\fP, freeing it via \fBpcre_free\fP afterwards. If no +memory can be obtained, the match fails with the PCRE_ERROR_NOMEMORY error. +.P +Do not confuse the (?R) item with the condition (R), which tests for recursion. +Consider this pattern, which matches text in angle brackets, allowing for +arbitrary nesting. Only digits are allowed in nested brackets (that is, when +recursing), whereas any characters are permitted at the outer level. +.sp + < (?: (?(R) \ed++ | [^<>]*+) | (?R)) * > +.sp +In this pattern, (?(R) is the start of a conditional subpattern, with two +different alternatives for the recursive and non-recursive cases. The (?R) item +is the actual recursive call. +. +. +.\" HTML +.SH "SUBPATTERNS AS SUBROUTINES" +.rs +.sp +If the syntax for a recursive subpattern reference (either by number or by +name) is used outside the parentheses to which it refers, it operates like a +subroutine in a programming language. The "called" subpattern may be defined +before or after the reference. An earlier example pointed out that the pattern +.sp + (sens|respons)e and \e1ibility +.sp +matches "sense and sensibility" and "response and responsibility", but not +"sense and responsibility". If instead the pattern +.sp + (sens|respons)e and (?1)ibility +.sp +is used, it does match "sense and responsibility" as well as the other two +strings. Another example is given in the discussion of DEFINE above. +.P +Like recursive subpatterns, a "subroutine" call is always treated as an atomic +group. That is, once it has matched some of the subject string, it is never +re-entered, even if it contains untried alternatives and there is a subsequent +matching failure. +.P +When a subpattern is used as a subroutine, processing options such as +case-independence are fixed when the subpattern is defined. They cannot be +changed for different calls. For example, consider this pattern: +.sp + (abc)(?i:(?1)) +.sp +It matches "abcabc". It does not match "abcABC" because the change of +processing option does not affect the called subpattern. +. +. +.SH CALLOUTS +.rs +.sp +Perl has a feature whereby using the sequence (?{...}) causes arbitrary Perl +code to be obeyed in the middle of matching a regular expression. This makes it +possible, amongst other things, to extract different substrings that match the +same pair of parentheses when there is a repetition. +.P +PCRE provides a similar feature, but of course it cannot obey arbitrary Perl +code. The feature is called "callout". The caller of PCRE provides an external +function by putting its entry point in the global variable \fIpcre_callout\fP. +By default, this variable contains NULL, which disables all calling out. +.P +Within a regular expression, (?C) indicates the points at which the external +function is to be called. If you want to identify different callout points, you +can put a number less than 256 after the letter C. The default value is zero. +For example, this pattern has two callout points: +.sp + (?C1)\dabc(?C2)def +.sp +If the PCRE_AUTO_CALLOUT flag is passed to \fBpcre_compile()\fP, callouts are +automatically installed before each item in the pattern. They are all numbered +255. +.P +During matching, when PCRE reaches a callout point (and \fIpcre_callout\fP is +set), the external function is called. It is provided with the number of the +callout, the position in the pattern, and, optionally, one item of data +originally supplied by the caller of \fBpcre_exec()\fP. The callout function +may cause matching to proceed, to backtrack, or to fail altogether. A complete +description of the interface to the callout function is given in the +.\" HREF +\fBpcrecallout\fP +.\" +documentation. +. +. +.SH "SEE ALSO" +.rs +.sp +\fBpcreapi\fP(3), \fBpcrecallout\fP(3), \fBpcrematching\fP(3), \fBpcre\fP(3). +.P .in 0 -Last updated: 24 January 2006 +Last updated: 06 December 2006 .br Copyright (c) 1997-2006 University of Cambridge. diff -Nurp tin-1.9.1/pcre/doc/pcrepattern.3 tin-1.9.2/pcre/doc/pcrepattern.3 --- tin-1.9.1/pcre/doc/pcrepattern.3 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/doc/pcrepattern.3 2006-12-21 14:41:25.000000000 +0100 @@ -148,7 +148,7 @@ represents: \et tab (hex 09) \eddd character with octal code ddd, or backreference \exhh character with hex code hh - \ex{hhh..} character with hex code hhh.. + \ex{hhh..} character with hex code hhh... (UTF-8 mode only) .sp The precise effect of \ecx is as follows: if x is a lower case letter, it is converted to upper case. Then bit 6 of the character (hex 40) is inverted. @@ -156,17 +156,17 @@ Thus \ecz becomes hex 1A, but \ec{ becom 7B. .P After \ex, from zero to two hexadecimal digits are read (letters can be in -upper or lower case). Any number of hexadecimal digits may appear between \ex{ -and }, but the value of the character code must be less than 256 in non-UTF-8 -mode, and less than 2**31 in UTF-8 mode (that is, the maximum hexadecimal value -is 7FFFFFFF). If characters other than hexadecimal digits appear between \ex{ -and }, or if there is no terminating }, this form of escape is not recognized. -Instead, the initial \ex will be interpreted as a basic hexadecimal escape, -with no following digits, giving a character whose value is zero. +upper or lower case). In UTF-8 mode, any number of hexadecimal digits may +appear between \ex{ and }, but the value of the character code must be less +than 2**31 (that is, the maximum hexadecimal value is 7FFFFFFF). If characters +other than hexadecimal digits appear between \ex{ and }, or if there is no +terminating }, this form of escape is not recognized. Instead, the initial +\ex will be interpreted as a basic hexadecimal escape, with no following +digits, giving a character whose value is zero. .P Characters whose value is less than 256 can be defined by either of the two -syntaxes for \ex. There is no difference in the way they are handled. For -example, \exdc is exactly the same as \ex{dc}. +syntaxes for \ex when PCRE is in UTF-8 mode. There is no difference in the +way they are handled. For example, \exdc is exactly the same as \ex{dc}. .P After \e0 up to two further octal digits are read. In both cases, if there are fewer than two digits, just those that are present are used. Thus the @@ -272,8 +272,7 @@ greater than 128 are used for accented l .P In UTF-8 mode, characters with values greater than 128 never match \ed, \es, or \ew, and always match \eD, \eS, and \eW. This is true even when Unicode -character property support is available. The use of locales with Unicode is -discouraged. +character property support is available. . . .\" HTML @@ -281,105 +280,28 @@ discouraged. .rs .sp When PCRE is built with Unicode character property support, three additional -escape sequences to match character properties are available when UTF-8 mode +escape sequences to match generic character types are available when UTF-8 mode is selected. They are: .sp - \ep{\fIxx\fP} a character with the \fIxx\fP property - \eP{\fIxx\fP} a character without the \fIxx\fP property - \eX an extended Unicode sequence -.sp -The property names represented by \fIxx\fP above are limited to the Unicode -script names, the general category properties, and "Any", which matches any -character (including newline). Other properties such as "InMusicalSymbols" are -not currently supported by PCRE. Note that \eP{Any} does not match any -characters, so always causes a match failure. -.P -Sets of Unicode characters are defined as belonging to certain scripts. A -character from one of these sets can be matched using a script name. For -example: -.sp - \ep{Greek} - \eP{Han} -.sp -Those that are not part of an identified script are lumped together as -"Common". The current list of scripts is: -.P -Arabic, -Armenian, -Bengali, -Bopomofo, -Braille, -Buginese, -Buhid, -Canadian_Aboriginal, -Cherokee, -Common, -Coptic, -Cypriot, -Cyrillic, -Deseret, -Devanagari, -Ethiopic, -Georgian, -Glagolitic, -Gothic, -Greek, -Gujarati, -Gurmukhi, -Han, -Hangul, -Hanunoo, -Hebrew, -Hiragana, -Inherited, -Kannada, -Katakana, -Kharoshthi, -Khmer, -Lao, -Latin, -Limbu, -Linear_B, -Malayalam, -Mongolian, -Myanmar, -New_Tai_Lue, -Ogham, -Old_Italic, -Old_Persian, -Oriya, -Osmanya, -Runic, -Shavian, -Sinhala, -Syloti_Nagri, -Syriac, -Tagalog, -Tagbanwa, -Tai_Le, -Tamil, -Telugu, -Thaana, -Thai, -Tibetan, -Tifinagh, -Ugaritic, -Yi. -.P -Each character has exactly one general category property, specified by a -two-letter abbreviation. For compatibility with Perl, negation can be specified -by including a circumflex between the opening brace and the property name. For -example, \ep{^Lu} is the same as \eP{Lu}. -.P -If only one letter is specified with \ep or \eP, it includes all the general -category properties that start with that letter. In this case, in the absence -of negation, the curly brackets in the escape sequence are optional; these two -examples have the same effect: + \ep{\fIxx\fP} a character with the \fIxx\fP property + \eP{\fIxx\fP} a character without the \fIxx\fP property + \eX an extended Unicode sequence +.sp +The property names represented by \fIxx\fP above are limited to the +Unicode general category properties. Each character has exactly one such +property, specified by a two-letter abbreviation. For compatibility with Perl, +negation can be specified by including a circumflex between the opening brace +and the property name. For example, \ep{^Lu} is the same as \eP{Lu}. +.P +If only one letter is specified with \ep or \eP, it includes all the properties +that start with that letter. In this case, in the absence of negation, the +curly brackets in the escape sequence are optional; these two examples have +the same effect: .sp \ep{L} \epL .sp -The following general category property codes are supported: +The following property codes are supported: .sp C Other Cc Control @@ -425,17 +347,8 @@ The following general category property Zp Paragraph separator Zs Space separator .sp -The special property L& is also supported: it matches a character that has -the Lu, Ll, or Lt property, in other words, a letter that is not classified as -a modifier or "other". -.P -The long synonyms for these properties that Perl supports (such as \ep{Letter}) -are not supported by PCRE. Nor is is permitted to prefix any of these -properties with "Is". -.P -No character that is in the Unicode table has the Cn (unassigned) property. -Instead, this property is assumed for any code point that is not in the -Unicode table. +Extended properties such as "Greek" or "InMusicalSymbols" are not supported by +PCRE. .P Specifying caseless matching does not affect these escape sequences. For example, \ep{Lu} always matches only upper case letters. @@ -1433,18 +1346,14 @@ number, provided that it occurs inside t "subroutine" call, which is described in the next section.) The special item (?R) is a recursive call of the entire regular expression. .P -A recursive subpattern call is always treated as an atomic group. That is, once -it has matched some of the subject string, it is never re-entered, even if -it contains untried alternatives and there is a subsequent matching failure. -.P -This PCRE pattern solves the nested parentheses problem (assume the -PCRE_EXTENDED option is set so that white space is ignored): +For example, this PCRE pattern solves the nested parentheses problem (assume +the PCRE_EXTENDED option is set so that white space is ignored): .sp \e( ( (?>[^()]+) | (?R) )* \e) .sp First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive -match of the pattern itself (that is, a correctly parenthesized substring). +match of the pattern itself (that is a correctly parenthesized substring). Finally there is a closing parenthesis. .P If this were part of a larger pattern, you would not want to recurse the entire @@ -1528,11 +1437,6 @@ matches "sense and sensibility" and "res is used, it does match "sense and responsibility" as well as the other two strings. Such references must, however, follow the subpattern to which they refer. -.P -Like recursive subpatterns, a "subroutine" call is always treated as an atomic -group. That is, once it has matched some of the subject string, it is never -re-entered, even if it contains untried alternatives and there is a subsequent -matching failure. . . .SH CALLOUTS @@ -1571,6 +1475,6 @@ description of the interface to the call documentation. .P .in 0 -Last updated: 24 January 2006 +Last updated: 28 February 2005 .br -Copyright (c) 1997-2006 University of Cambridge. +Copyright (c) 1997-2005 University of Cambridge. diff -Nurp tin-1.9.1/pcre/pcre.h tin-1.9.2/pcre/pcre.h --- tin-1.9.1/pcre/pcre.h 2006-02-15 21:35:44.000000000 +0100 +++ tin-1.9.2/pcre/pcre.h 2006-12-21 15:25:55.000000000 +0100 @@ -5,7 +5,7 @@ /* This is the public header file for the PCRE library, to be #included by applications that call the PCRE functions. - Copyright (c) 1997-2005 University of Cambridge + Copyright (c) 1997-2006 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -52,10 +52,10 @@ and libpcre.pc. The values are not put i cannot run ./configure. As it now stands, this file need not be edited in that circumstance. */ -#define PCRE_MAJOR 6 -#define PCRE_MINOR 6 +#define PCRE_MAJOR 7 +#define PCRE_MINOR 0 #define PCRE_PRERELEASE -#define PCRE_DATE 06-Feb-2006 +#define PCRE_DATE 18-Dec-2006 /* Win32 uses DLL by default; it needs special stuff for exported functions when building PCRE. */ @@ -114,6 +114,11 @@ extern "C" { #define PCRE_DFA_SHORTEST 0x00010000 #define PCRE_DFA_RESTART 0x00020000 #define PCRE_FIRSTLINE 0x00040000 +#define PCRE_DUPNAMES 0x00080000 +#define PCRE_NEWLINE_CR 0x00100000 +#define PCRE_NEWLINE_LF 0x00200000 +#define PCRE_NEWLINE_CRLF 0x00300000 +#define PCRE_NEWLINE_ANY 0x00400000 /* Exec-time and get/set-time error codes */ @@ -121,7 +126,8 @@ extern "C" { #define PCRE_ERROR_NULL (-2) #define PCRE_ERROR_BADOPTION (-3) #define PCRE_ERROR_BADMAGIC (-4) -#define PCRE_ERROR_UNKNOWN_NODE (-5) +#define PCRE_ERROR_UNKNOWN_OPCODE (-5) +#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */ #define PCRE_ERROR_NOMEMORY (-6) #define PCRE_ERROR_NOSUBSTRING (-7) #define PCRE_ERROR_MATCHLIMIT (-8) @@ -138,6 +144,8 @@ extern "C" { #define PCRE_ERROR_DFA_WSSIZE (-19) #define PCRE_ERROR_DFA_RECURSE (-20) #define PCRE_ERROR_RECURSIONLIMIT (-21) +#define PCRE_ERROR_NULLWSLIMIT (-22) +#define PCRE_ERROR_BADNEWLINE (-23) /* Request types for pcre_fullinfo() */ @@ -267,6 +275,8 @@ PCRE_DATA_SCOPE int pcre_fullinfo(const PCRE_DATA_SCOPE int pcre_get_named_substring(const pcre *, const char *, int *, int, const char *, const char **); PCRE_DATA_SCOPE int pcre_get_stringnumber(const pcre *, const char *); +PCRE_DATA_SCOPE int pcre_get_stringtable_entries(const pcre *, const char *, + char **, char **); PCRE_DATA_SCOPE int pcre_get_substring(const char *, int *, int, int, const char **); PCRE_DATA_SCOPE int pcre_get_substring_list(const char *, int *, int, diff -Nurp tin-1.9.1/pcre/pcre_compile.c tin-1.9.2/pcre/pcre_compile.c --- tin-1.9.1/pcre/pcre_compile.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_compile.c 2006-12-19 10:31:35.000000000 +0100 @@ -42,6 +42,11 @@ POSSIBILITY OF SUCH DAMAGE. supporting internal functions that are not used by other modules. */ +#define NLBLOCK cd /* Block containing newline information */ +#define PSSTART start_pattern /* Field containing processed string start */ +#define PSEND end_pattern /* Field containing processed string end */ + + #include "pcre_internal.h" @@ -53,18 +58,23 @@ used by pcretest. DEBUG is not defined w #endif - /************************************************* * Code parameters and static tables * *************************************************/ -/* Maximum number of items on the nested bracket stacks at compile time. This -applies to the nesting of all kinds of parentheses. It does not limit -un-nested, non-capturing parentheses. This number can be made bigger if -necessary - it is used to dimension one int and one unsigned char vector at -compile time. */ +/* This value specifies the size of stack workspace that is used during the +first pre-compile phase that determines how much memory is required. The regex +is partly compiled into this space, but the compiled parts are discarded as +soon as they can be, so that hopefully there will never be an overrun. The code +does, however, check for an overrun. The largest amount I've seen used is 218, +so this number is very generous. + +The same workspace is used during the second, actual compile phase for +remembering forward references to groups so that they can be filled in at the +end. Each entry in this list occupies LINK_SIZE bytes, so even when LINK_SIZE +is 4 there is plenty of room. */ -#define BRASTACK_SIZE 200 +#define COMPILE_WORK_SIZE (4096) /* Table for handling escaped characters in the range '0'-'z'. Positive returns @@ -78,10 +88,10 @@ static const short int escapes[] = { 0, 0, ':', ';', '<', '=', '>', '?', /* 8 - ? */ '@', -ESC_A, -ESC_B, -ESC_C, -ESC_D, -ESC_E, 0, -ESC_G, /* @ - G */ 0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ --ESC_P, -ESC_Q, 0, -ESC_S, 0, 0, 0, -ESC_W, /* P - W */ +-ESC_P, -ESC_Q, -ESC_R, -ESC_S, 0, 0, 0, -ESC_W, /* P - W */ -ESC_X, 0, -ESC_Z, '[', '\\', ']', '^', '_', /* X - _ */ '`', 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, /* ` - g */ - 0, 0, 0, 0, 0, 0, ESC_n, 0, /* h - o */ + 0, 0, 0, -ESC_k, 0, 0, ESC_n, 0, /* h - o */ -ESC_p, 0, ESC_r, -ESC_s, ESC_tee, 0, 0, -ESC_w, /* p - w */ 0, 0, -ESC_z /* x - z */ }; @@ -97,7 +107,7 @@ static const short int escapes[] = { /* 78 */ 0, '`', ':', '#', '@', '\'', '=', '"', /* 80 */ 0, 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, /* 88 */ 0, 0, 0, '{', 0, 0, 0, 0, -/* 90 */ 0, 0, 0, 'l', 0, ESC_n, 0, -ESC_p, +/* 90 */ 0, 0, -ESC_k, 'l', 0, ESC_n, 0, -ESC_p, /* 98 */ 0, ESC_r, 0, '}', 0, 0, 0, 0, /* A0 */ 0, '~', -ESC_s, ESC_tee, 0, 0, -ESC_w, 0, /* A8 */ 0,-ESC_z, 0, 0, 0, '[', 0, 0, @@ -106,7 +116,7 @@ static const short int escapes[] = { /* C0 */ '{',-ESC_A, -ESC_B, -ESC_C, -ESC_D,-ESC_E, 0, -ESC_G, /* C8 */ 0, 0, 0, 0, 0, 0, 0, 0, /* D0 */ '}', 0, 0, 0, 0, 0, 0, -ESC_P, -/* D8 */-ESC_Q, 0, 0, 0, 0, 0, 0, 0, +/* D8 */-ESC_Q,-ESC_R, 0, 0, 0, 0, 0, 0, /* E0 */ '\\', 0, -ESC_S, 0, 0, 0, -ESC_W, -ESC_X, /* E8 */ 0,-ESC_Z, 0, 0, 0, 0, 0, 0, /* F0 */ 0, 0, 0, 0, 0, 0, 0, 0, @@ -155,8 +165,13 @@ static const int posix_class_maps[] = { }; +#define STRING(a) # a +#define XSTRING(s) STRING(s) + /* The texts of compile-time error messages. These are "char *" because they -are passed to the outside world. */ +are passed to the outside world. Do not ever re-use any error number, because +they are documented. Always add a new error instead. Messages marked DEAD below +are no longer used. */ static const char *error_texts[] = { "no error", @@ -171,7 +186,7 @@ static const char *error_texts[] = { "range out of order in character class", "nothing to repeat", /* 10 */ - "operand of unlimited repeat could match the empty string", + "operand of unlimited repeat could match the empty string", /** DEAD **/ "internal error: unexpected repeat", "unrecognized character after (?", "POSIX named classes are supported only within a class", @@ -181,7 +196,7 @@ static const char *error_texts[] = { "erroffset passed as NULL", "unknown option bit(s) set", "missing ) after comment", - "parentheses nested too deeply", + "parentheses nested too deeply", /** DEAD **/ /* 20 */ "regular expression too large", "failed to get memory", @@ -190,7 +205,7 @@ static const char *error_texts[] = { "unrecognized character after (?<", /* 25 */ "lookbehind assertion is not fixed length", - "malformed number after (?(", + "malformed number or name after (?(", "conditional group contains more than two branches", "assertion expected after (?(", "(?R or (?digits must be followed by )", @@ -198,7 +213,7 @@ static const char *error_texts[] = { "unknown POSIX class name", "POSIX collating elements are not supported", "this version of PCRE is not compiled with PCRE_UTF8 support", - "spare error", + "spare error", /** DEAD **/ "character value in \\x{...} sequence is too large", /* 35 */ "invalid condition (?(0)", @@ -209,13 +224,25 @@ static const char *error_texts[] = { /* 40 */ "recursive call could loop indefinitely", "unrecognized character after (?P", - "syntax error after (?P", - "two named groups have the same name", + "syntax error in subpattern name (missing terminator)", + "two named subpatterns have the same name", "invalid UTF-8 string", /* 45 */ "support for \\P, \\p, and \\X has not been compiled", "malformed \\P or \\p sequence", - "unknown property name after \\P or \\p" + "unknown property name after \\P or \\p", + "subpattern name is too long (maximum " XSTRING(MAX_NAME_SIZE) " characters)", + "too many named subpatterns (maximum " XSTRING(MAX_NAME_COUNT) ")", + /* 50 */ + "repeated subpattern is too long", + "octal value is greater than \\377 (not in UTF-8 mode)", + "internal error: overran compiling workspace", + "internal error: previously-checked referenced subpattern not found", + "DEFINE group contains more than one branch", + /* 55 */ + "repeating a DEFINE group is not allowed", + "inconsistent NEWLINE options", + "\\g is not followed by an (optionally braced) non-zero number" }; @@ -346,8 +373,8 @@ static const unsigned char ebcdic_charta /* Definition to allow mutual recursion */ static BOOL - compile_regex(int, int, int *, uschar **, const uschar **, int *, BOOL, int, - int *, int *, branch_chain *, compile_data *); + compile_regex(int, int, uschar **, const uschar **, int *, BOOL, int, int *, + int *, branch_chain *, compile_data *, int *); @@ -357,9 +384,11 @@ static BOOL /* This function is called when a \ has been encountered. It either returns a positive value for a simple escape such as \n, or a negative value which -encodes one of the more complicated things such as \d. When UTF-8 is enabled, -a positive value greater than 255 may be returned. On entry, ptr is pointing at -the \. On exit, it is on the final character of the escape sequence. +encodes one of the more complicated things such as \d. A backreference to group +n is returned as -(ESC_REF + n); ESC_REF is the highest ESC_xxx macro. When +UTF-8 is enabled, a positive value greater than 255 may be returned. On entry, +ptr is pointing at the \. On exit, it is on the final character of the escape +sequence. Arguments: ptrptr points to the pattern position pointer @@ -406,6 +435,8 @@ else if ((i = escapes[c - 0x48]) != 0) else { const uschar *oldptr; + BOOL braced, negated; + switch (c) { /* A number of Perl escapes are not handled by PCRE. We give an explicit @@ -419,6 +450,48 @@ else *errorcodeptr = ERR37; break; + /* \g must be followed by a number, either plain or braced. If positive, it + is an absolute backreference. If negative, it is a relative backreference. + This is a Perl 5.10 feature. */ + + case 'g': + if (ptr[1] == '{') + { + braced = TRUE; + ptr++; + } + else braced = FALSE; + + if (ptr[1] == '-') + { + negated = TRUE; + ptr++; + } + else negated = FALSE; + + c = 0; + while ((digitab[ptr[1]] & ctype_digit) != 0) + c = c * 10 + *(++ptr) - '0'; + + if (c == 0 || (braced && *(++ptr) != '}')) + { + *errorcodeptr = ERR57; + return 0; + } + + if (negated) + { + if (c > bracount) + { + *errorcodeptr = ERR15; + return 0; + } + c = bracount - (c - 1); + } + + c = -(ESC_REF + c); + break; + /* The handling of escape sequences consisting of a string of digits starting with one that is not zero is not straightforward. By experiment, the way Perl works seems to be as follows: @@ -460,13 +533,16 @@ else } /* \0 always starts an octal number, but we may drop through to here with a - larger first octal digit. */ + larger first octal digit. The original code used just to take the least + significant 8 bits of octal numbers (I think this is what early Perls used + to do). Nowadays we allow for larger numbers in UTF-8 mode, but no more + than 3 octal digits. */ case '0': c -= '0'; while(i++ < 2 && ptr[1] >= '0' && ptr[1] <= '7') c = c * 8 + *(++ptr) - '0'; - c &= 255; /* Take least significant 8 bits */ + if (!utf8 && c > 255) *errorcodeptr = ERR51; break; /* \x is complicated. \x{ddd} is a character number which can be greater @@ -523,7 +599,9 @@ else } break; - /* Other special escapes not starting with a digit are straightforward */ + /* For \c, a following letter is upper-cased; then the 0x40 bit is flipped. + This coding is ASCII-specific, but then the whole concept of \cx is + ASCII-specific. (However, an EBCDIC equivalent has now been added.) */ case 'c': c = *(++ptr); @@ -533,10 +611,6 @@ else return 0; } - /* A letter is upper-cased; then the 0x40 bit is flipped. This coding - is ASCII-specific, but then the whole concept of \cx is ASCII-specific. - (However, an EBCDIC equivalent has now been added.) */ - #if !EBCDIC /* ASCII coding */ if (c >= 'a' && c <= 'z') c -= 32; c ^= 0x40; @@ -763,6 +837,117 @@ return p; /************************************************* +* Find forward referenced subpattern * +*************************************************/ + +/* This function scans along a pattern's text looking for capturing +subpatterns, and counting them. If it finds a named pattern that matches the +name it is given, it returns its number. Alternatively, if the name is NULL, it +returns when it reaches a given numbered subpattern. This is used for forward +references to subpatterns. We know that if (?P< is encountered, the name will +be terminated by '>' because that is checked in the first pass. + +Arguments: + ptr current position in the pattern + count current count of capturing parens so far encountered + name name to seek, or NULL if seeking a numbered subpattern + lorn name length, or subpattern number if name is NULL + xmode TRUE if we are in /x mode + +Returns: the number of the named subpattern, or -1 if not found +*/ + +static int +find_parens(const uschar *ptr, int count, const uschar *name, int lorn, + BOOL xmode) +{ +const uschar *thisname; + +for (; *ptr != 0; ptr++) + { + int term; + + /* Skip over backslashed characters and also entire \Q...\E */ + + if (*ptr == '\\') + { + if (*(++ptr) == 0) return -1; + if (*ptr == 'Q') for (;;) + { + while (*(++ptr) != 0 && *ptr != '\\'); + if (*ptr == 0) return -1; + if (*(++ptr) == 'E') break; + } + continue; + } + + /* Skip over character classes */ + + if (*ptr == '[') + { + while (*(++ptr) != ']') + { + if (*ptr == '\\') + { + if (*(++ptr) == 0) return -1; + if (*ptr == 'Q') for (;;) + { + while (*(++ptr) != 0 && *ptr != '\\'); + if (*ptr == 0) return -1; + if (*(++ptr) == 'E') break; + } + continue; + } + } + continue; + } + + /* Skip comments in /x mode */ + + if (xmode && *ptr == '#') + { + while (*(++ptr) != 0 && *ptr != '\n'); + if (*ptr == 0) return -1; + continue; + } + + /* An opening parens must now be a real metacharacter */ + + if (*ptr != '(') continue; + if (ptr[1] != '?') + { + count++; + if (name == NULL && count == lorn) return count; + continue; + } + + ptr += 2; + if (*ptr == 'P') ptr++; /* Allow optional P */ + + /* We have to disambiguate (? */ + + if ((*ptr != '<' || ptr[1] == '!' || ptr[1] == '=') && + *ptr != '\'') + continue; + + count++; + + if (name == NULL && count == lorn) return count; + term = *ptr++; + if (term == '<') term = '>'; + thisname = ptr; + while (*ptr != term) ptr++; + if (name != NULL && lorn == ptr - thisname && + strncmp((const char *)name, (const char *)thisname, lorn) == 0) + return count; + } + +return -1; +} + + + +/************************************************* * Find first significant op code * *************************************************/ @@ -811,7 +996,8 @@ for (;;) case OP_CALLOUT: case OP_CREF: - case OP_BRANUMBER: + case OP_RREF: + case OP_DEF: code += _pcre_OP_lengths[*code]; break; @@ -856,14 +1042,14 @@ for (;;) { int d; register int op = *cc; - if (op >= OP_BRA) op = OP_BRA; switch (op) { + case OP_CBRA: case OP_BRA: case OP_ONCE: case OP_COND: - d = find_fixedlength(cc, options); + d = find_fixedlength(cc + ((op == OP_CBRA)? 2:0), options); if (d < 0) return d; branchlength += d; do cc += GET(cc, 1); while (*cc == OP_ALT); @@ -898,8 +1084,9 @@ for (;;) /* Skip over things that don't match chars */ case OP_REVERSE: - case OP_BRANUMBER: case OP_CREF: + case OP_RREF: + case OP_DEF: case OP_OPT: case OP_CALLOUT: case OP_SOD: @@ -917,6 +1104,7 @@ for (;;) case OP_CHAR: case OP_CHARNC: + case OP_NOT: branchlength++; cc += 2; #ifdef SUPPORT_UTF8 @@ -1031,32 +1219,33 @@ Returns: pointer to the opcode for static const uschar * find_bracket(const uschar *code, BOOL utf8, int number) { -#ifndef SUPPORT_UTF8 -utf8 = utf8; /* Stop pedantic compilers complaining */ -#endif - for (;;) { register int c = *code; if (c == OP_END) return NULL; - else if (c > OP_BRA) + + /* XCLASS is used for classes that cannot be represented just by a bit + map. This includes negated single high-valued characters. The length in + the table is zero; the actual length is stored in the compiled code. */ + + if (c == OP_XCLASS) code += GET(code, 1); + + /* Handle capturing bracket */ + + else if (c == OP_CBRA) { - int n = c - OP_BRA; - if (n > EXTRACT_BASIC_MAX) n = GET2(code, 2+LINK_SIZE); + int n = GET2(code, 1+LINK_SIZE); if (n == number) return (uschar *)code; - code += _pcre_OP_lengths[OP_BRA]; + code += _pcre_OP_lengths[c]; } + + /* In UTF-8 mode, opcodes that are followed by a character may be followed by + a multi-byte character. The length in the table is a minimum, so we have to + arrange to skip the extra bytes. */ + else { code += _pcre_OP_lengths[c]; - -#ifdef SUPPORT_UTF8 - - /* In UTF-8 mode, opcodes that are followed by a character may be followed - by a multi-byte character. The length in the table is a minimum, so we have - to scan along to skip the extra bytes. All opcodes are less than 128, so we - can use relatively efficient code. */ - if (utf8) switch(c) { case OP_CHAR: @@ -1064,24 +1253,19 @@ for (;;) case OP_EXACT: case OP_UPTO: case OP_MINUPTO: + case OP_POSUPTO: case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: case OP_QUERY: case OP_MINQUERY: - while ((*code & 0xc0) == 0x80) code++; - break; - - /* XCLASS is used for classes that cannot be represented just by a bit - map. This includes negated single high-valued characters. The length in - the table is zero; the actual length is stored in the compiled code. */ - - case OP_XCLASS: - code += GET(code, 1) + 1; + case OP_POSQUERY: + if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f]; break; } -#endif } } } @@ -1105,30 +1289,26 @@ Returns: pointer to the opcode for static const uschar * find_recurse(const uschar *code, BOOL utf8) { -#ifndef SUPPORT_UTF8 -utf8 = utf8; /* Stop pedantic compilers complaining */ -#endif - for (;;) { register int c = *code; if (c == OP_END) return NULL; - else if (c == OP_RECURSE) return code; - else if (c > OP_BRA) - { - code += _pcre_OP_lengths[OP_BRA]; - } + if (c == OP_RECURSE) return code; + + /* XCLASS is used for classes that cannot be represented just by a bit + map. This includes negated single high-valued characters. The length in + the table is zero; the actual length is stored in the compiled code. */ + + if (c == OP_XCLASS) code += GET(code, 1); + + /* Otherwise, we get the item's length from the table. In UTF-8 mode, opcodes + that are followed by a character may be followed by a multi-byte character. + The length in the table is a minimum, so we have to arrange to skip the extra + bytes. */ + else { code += _pcre_OP_lengths[c]; - -#ifdef SUPPORT_UTF8 - - /* In UTF-8 mode, opcodes that are followed by a character may be followed - by a multi-byte character. The length in the table is a minimum, so we have - to scan along to skip the extra bytes. All opcodes are less than 128, so we - can use relatively efficient code. */ - if (utf8) switch(c) { case OP_CHAR: @@ -1136,24 +1316,19 @@ for (;;) case OP_EXACT: case OP_UPTO: case OP_MINUPTO: + case OP_POSUPTO: case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: case OP_QUERY: case OP_MINQUERY: - while ((*code & 0xc0) == 0x80) code++; - break; - - /* XCLASS is used for classes that cannot be represented just by a bit - map. This includes negated single high-valued characters. The length in - the table is zero; the actual length is stored in the compiled code. */ - - case OP_XCLASS: - code += GET(code, 1) + 1; + case OP_POSQUERY: + if (code[-1] >= 0xc0) code += _pcre_utf8_table4[code[-1] & 0x3f]; break; } -#endif } } } @@ -1165,10 +1340,11 @@ for (;;) *************************************************/ /* This function scans through a branch of a compiled pattern to see whether it -can match the empty string or not. It is called only from could_be_empty() -below. Note that first_significant_code() skips over assertions. If we hit an -unclosed bracket, we return "empty" - this means we've struck an inner bracket -whose current branch will already have been scanned. +can match the empty string or not. It is called from could_be_empty() +below and from compile_branch() when checking for an unlimited repeat of a +group that can match nothing. Note that first_significant_code() skips over +assertions. If we hit an unclosed bracket, we return "empty" - this means we've +struck an inner bracket whose current branch will already have been scanned. Arguments: code points to start of search @@ -1182,7 +1358,7 @@ static BOOL could_be_empty_branch(const uschar *code, const uschar *endcode, BOOL utf8) { register int c; -for (code = first_significant_code(code + 1 + LINK_SIZE, NULL, 0, TRUE); +for (code = first_significant_code(code + _pcre_OP_lengths[*code], NULL, 0, TRUE); code < endcode; code = first_significant_code(code + _pcre_OP_lengths[c], NULL, 0, TRUE)) { @@ -1190,7 +1366,7 @@ for (code = first_significant_code(code c = *code; - if (c >= OP_BRA) + if (c == OP_BRA || c == OP_CBRA || c == OP_ONCE) { BOOL empty_branch; if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ @@ -1206,11 +1382,18 @@ for (code = first_significant_code(code } while (*code == OP_ALT); if (!empty_branch) return FALSE; /* All branches are non-empty */ - code += 1 + LINK_SIZE; - c = *code; + + /* Move past the KET and fudge things so that the increment in the "for" + above has no effect. */ + + c = OP_END; + code += 1 + LINK_SIZE - _pcre_OP_lengths[c]; + continue; } - else switch (c) + /* Handle the other opcodes */ + + switch (c) { /* Check for quantifiers after a class */ @@ -1266,12 +1449,15 @@ for (code = first_significant_code(code case OP_NOT: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: case OP_EXACT: case OP_NOTPLUS: case OP_NOTMINPLUS: + case OP_NOTPOSPLUS: case OP_NOTEXACT: case OP_TYPEPLUS: case OP_TYPEMINPLUS: + case OP_TYPEPOSPLUS: case OP_TYPEEXACT: return FALSE; @@ -1283,16 +1469,19 @@ for (code = first_significant_code(code case OP_ALT: return TRUE; - /* In UTF-8 mode, STAR, MINSTAR, QUERY, MINQUERY, UPTO, and MINUPTO may be - followed by a multibyte character */ + /* In UTF-8 mode, STAR, MINSTAR, POSSTAR, QUERY, MINQUERY, POSQUERY, UPTO, + MINUPTO, and POSUPTO may be followed by a multibyte character */ #ifdef SUPPORT_UTF8 case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_QUERY: case OP_MINQUERY: + case OP_POSQUERY: case OP_UPTO: case OP_MINUPTO: + case OP_POSUPTO: if (utf8) while ((code[2] & 0xc0) == 0x80) code++; break; #endif @@ -1410,26 +1599,57 @@ earlier groups that are outside the curr optional (i.e. the minimum quantifier is zero), OP_BRAZERO is inserted before it, after it has been compiled. This means that any OP_RECURSE items within it that refer to the group itself or any contained groups have to have their -offsets adjusted. That is the job of this function. Before it is called, the -partially compiled regex must be temporarily terminated with OP_END. +offsets adjusted. That one of the jobs of this function. Before it is called, +the partially compiled regex must be temporarily terminated with OP_END. + +This function has been extended with the possibility of forward references for +recursions and subroutine calls. It must also check the list of such references +for the group we are dealing with. If it finds that one of the recursions in +the current group is on this list, it adjusts the offset in the list, not the +value in the reference (which is a group number). Arguments: group points to the start of the group adjust the amount by which the group is to be moved utf8 TRUE in UTF-8 mode cd contains pointers to tables etc. + save_hwm the hwm forward reference pointer at the start of the group Returns: nothing */ static void -adjust_recurse(uschar *group, int adjust, BOOL utf8, compile_data *cd) +adjust_recurse(uschar *group, int adjust, BOOL utf8, compile_data *cd, + uschar *save_hwm) { uschar *ptr = group; while ((ptr = (uschar *)find_recurse(ptr, utf8)) != NULL) { - int offset = GET(ptr, 1); - if (cd->start_code + offset >= group) PUT(ptr, 1, offset + adjust); + int offset; + uschar *hc; + + /* See if this recursion is on the forward reference list. If so, adjust the + reference. */ + + for (hc = save_hwm; hc < cd->hwm; hc += LINK_SIZE) + { + offset = GET(hc, 0); + if (cd->start_code + offset == ptr + 1) + { + PUT(hc, 0, offset + adjust); + break; + } + } + + /* Otherwise, adjust the recursion offset if it's after the start of this + group. */ + + if (hc >= cd->hwm) + { + offset = GET(ptr, 1); + if (cd->start_code + offset >= group) PUT(ptr, 1, offset + adjust); + } + ptr += 1 + LINK_SIZE; } } @@ -1508,12 +1728,13 @@ Yield: TRUE when range returned; */ static BOOL -get_othercase_range(int *cptr, int d, int *ocptr, int *odptr) +get_othercase_range(unsigned int *cptr, unsigned int d, unsigned int *ocptr, + unsigned int *odptr) { -int c, othercase, next; +unsigned int c, othercase, next; for (c = *cptr; c <= d; c++) - { if ((othercase = _pcre_ucp_othercase(c)) >= 0) break; } + { if ((othercase = _pcre_ucp_othercase(c)) != NOTACHAR) break; } if (c > d) return FALSE; @@ -1534,17 +1755,249 @@ return TRUE; #endif /* SUPPORT_UCP */ + +/************************************************* +* Check if auto-possessifying is possible * +*************************************************/ + +/* This function is called for unlimited repeats of certain items, to see +whether the next thing could possibly match the repeated item. If not, it makes +sense to automatically possessify the repeated item. + +Arguments: + op_code the repeated op code + this data for this item, depends on the opcode + utf8 TRUE in UTF-8 mode + utf8_char used for utf8 character bytes, NULL if not relevant + ptr next character in pattern + options options bits + cd contains pointers to tables etc. + +Returns: TRUE if possessifying is wanted +*/ + +static BOOL +check_auto_possessive(int op_code, int item, BOOL utf8, uschar *utf8_char, + const uschar *ptr, int options, compile_data *cd) +{ +int next; + +/* Skip whitespace and comments in extended mode */ + +if ((options & PCRE_EXTENDED) != 0) + { + for (;;) + { + while ((cd->ctypes[*ptr] & ctype_space) != 0) ptr++; + if (*ptr == '#') + { + while (*(++ptr) != 0) + if (IS_NEWLINE(ptr)) { ptr += cd->nllen; break; } + } + else break; + } + } + +/* If the next item is one that we can handle, get its value. A non-negative +value is a character, a negative value is an escape value. */ + +if (*ptr == '\\') + { + int temperrorcode = 0; + next = check_escape(&ptr, &temperrorcode, cd->bracount, options, FALSE); + if (temperrorcode != 0) return FALSE; + ptr++; /* Point after the escape sequence */ + } + +else if ((cd->ctypes[*ptr] & ctype_meta) == 0) + { +#ifdef SUPPORT_UTF8 + if (utf8) { GETCHARINC(next, ptr); } else +#endif + next = *ptr++; + } + +else return FALSE; + +/* Skip whitespace and comments in extended mode */ + +if ((options & PCRE_EXTENDED) != 0) + { + for (;;) + { + while ((cd->ctypes[*ptr] & ctype_space) != 0) ptr++; + if (*ptr == '#') + { + while (*(++ptr) != 0) + if (IS_NEWLINE(ptr)) { ptr += cd->nllen; break; } + } + else break; + } + } + +/* If the next thing is itself optional, we have to give up. */ + +if (*ptr == '*' || *ptr == '?' || strncmp((char *)ptr, "{0,", 3) == 0) + return FALSE; + +/* Now compare the next item with the previous opcode. If the previous is a +positive single character match, "item" either contains the character or, if +"item" is greater than 127 in utf8 mode, the character's bytes are in +utf8_char. */ + + +/* Handle cases when the next item is a character. */ + +if (next >= 0) switch(op_code) + { + case OP_CHAR: +#ifdef SUPPORT_UTF8 + if (utf8 && item > 127) { GETCHAR(item, utf8_char); } +#endif + return item != next; + + /* For CHARNC (caseless character) we must check the other case. If we have + Unicode property support, we can use it to test the other case of + high-valued characters. */ + + case OP_CHARNC: +#ifdef SUPPORT_UTF8 + if (utf8 && item > 127) { GETCHAR(item, utf8_char); } +#endif + if (item == next) return FALSE; +#ifdef SUPPORT_UTF8 + if (utf8) + { + unsigned int othercase; + if (next < 128) othercase = cd->fcc[next]; else +#ifdef SUPPORT_UCP + othercase = _pcre_ucp_othercase((unsigned int)next); +#else + othercase = NOTACHAR; +#endif + return (unsigned int)item != othercase; + } + else +#endif /* SUPPORT_UTF8 */ + return (item != cd->fcc[next]); /* Non-UTF-8 mode */ + + /* For OP_NOT, "item" must be a single-byte character. */ + + case OP_NOT: + if (next < 0) return FALSE; /* Not a character */ + if (item == next) return TRUE; + if ((options & PCRE_CASELESS) == 0) return FALSE; +#ifdef SUPPORT_UTF8 + if (utf8) + { + unsigned int othercase; + if (next < 128) othercase = cd->fcc[next]; else +#ifdef SUPPORT_UCP + othercase = _pcre_ucp_othercase(next); +#else + othercase = NOTACHAR; +#endif + return (unsigned int)item == othercase; + } + else +#endif /* SUPPORT_UTF8 */ + return (item == cd->fcc[next]); /* Non-UTF-8 mode */ + + case OP_DIGIT: + return next > 127 || (cd->ctypes[next] & ctype_digit) == 0; + + case OP_NOT_DIGIT: + return next <= 127 && (cd->ctypes[next] & ctype_digit) != 0; + + case OP_WHITESPACE: + return next > 127 || (cd->ctypes[next] & ctype_space) == 0; + + case OP_NOT_WHITESPACE: + return next <= 127 && (cd->ctypes[next] & ctype_space) != 0; + + case OP_WORDCHAR: + return next > 127 || (cd->ctypes[next] & ctype_word) == 0; + + case OP_NOT_WORDCHAR: + return next <= 127 && (cd->ctypes[next] & ctype_word) != 0; + + default: + return FALSE; + } + + +/* Handle the case when the next item is \d, \s, etc. */ + +switch(op_code) + { + case OP_CHAR: + case OP_CHARNC: +#ifdef SUPPORT_UTF8 + if (utf8 && item > 127) { GETCHAR(item, utf8_char); } +#endif + switch(-next) + { + case ESC_d: + return item > 127 || (cd->ctypes[item] & ctype_digit) == 0; + + case ESC_D: + return item <= 127 && (cd->ctypes[item] & ctype_digit) != 0; + + case ESC_s: + return item > 127 || (cd->ctypes[item] & ctype_space) == 0; + + case ESC_S: + return item <= 127 && (cd->ctypes[item] & ctype_space) != 0; + + case ESC_w: + return item > 127 || (cd->ctypes[item] & ctype_word) == 0; + + case ESC_W: + return item <= 127 && (cd->ctypes[item] & ctype_word) != 0; + + default: + return FALSE; + } + + case OP_DIGIT: + return next == -ESC_D || next == -ESC_s || next == -ESC_W; + + case OP_NOT_DIGIT: + return next == -ESC_d; + + case OP_WHITESPACE: + return next == -ESC_S || next == -ESC_d || next == -ESC_w; + + case OP_NOT_WHITESPACE: + return next == -ESC_s; + + case OP_WORDCHAR: + return next == -ESC_W || next == -ESC_s; + + case OP_NOT_WORDCHAR: + return next == -ESC_w || next == -ESC_d; + + default: + return FALSE; + } + +/* Control does not reach here */ +} + + + /************************************************* * Compile one branch * *************************************************/ -/* Scan the pattern, compiling it into the code vector. If the options are +/* Scan the pattern, compiling it into the a vector. If the options are changed during the branch, the pointer is used to change the external options -bits. +bits. This function is used during the pre-compile phase when we are trying +to find out the amount of memory needed, as well as during the real compile +phase. The value of lengthptr distinguishes the two phases. Arguments: optionsptr pointer to the option bits - brackets points to number of extracting brackets used codeptr points to the pointer to the current code point ptrptr points to the current pattern pointer errorcodeptr points to error code variable @@ -1552,15 +2005,17 @@ Arguments: reqbyteptr set to the last literal character required, else < 0 bcptr points to current branch chain cd contains pointers to tables etc. + lengthptr NULL during the real compile phase + points to length accumulator during pre-compile phase Returns: TRUE on success FALSE, with *errorcodeptr set non-zero on error */ static BOOL -compile_branch(int *optionsptr, int *brackets, uschar **codeptr, - const uschar **ptrptr, int *errorcodeptr, int *firstbyteptr, - int *reqbyteptr, branch_chain *bcptr, compile_data *cd) +compile_branch(int *optionsptr, uschar **codeptr, const uschar **ptrptr, + int *errorcodeptr, int *firstbyteptr, int *reqbyteptr, branch_chain *bcptr, + compile_data *cd, int *lengthptr) { int repeat_type, op_type; int repeat_min = 0, repeat_max = 0; /* To please picky compilers */ @@ -1569,11 +2024,13 @@ int greedy_default, greedy_non_default; int firstbyte, reqbyte; int zeroreqbyte, zerofirstbyte; int req_caseopt, reqvary, tempreqvary; -int condcount = 0; int options = *optionsptr; int after_manual_callout = 0; +int length_prevgroup = 0; register int c; register uschar *code = *codeptr; +uschar *last_code = code; +uschar *orig_code = code; uschar *tempcode; BOOL inescq = FALSE; BOOL groupsetfirstbyte = FALSE; @@ -1581,6 +2038,7 @@ const uschar *ptr = *ptrptr; const uschar *tempptr; uschar *previous = NULL; uschar *previous_callout = NULL; +uschar *save_hwm = NULL; uschar classbits[32]; #ifdef SUPPORT_UTF8 @@ -1590,6 +2048,11 @@ uschar *class_utf8data; uschar utf8_char[6]; #else BOOL utf8 = FALSE; +uschar *utf8_char = NULL; +#endif + +#ifdef DEBUG +if (lengthptr != NULL) DPRINTF((">> start branch\n")); #endif /* Set up the default and non-default settings for greediness */ @@ -1623,6 +2086,7 @@ for (;; ptr++) BOOL negate_class; BOOL possessive_quantifier; BOOL is_quantifier; + BOOL is_recurse; int class_charcount; int class_lastchar; int newoptions; @@ -1630,28 +2094,84 @@ for (;; ptr++) int skipbytes; int subreqbyte; int subfirstbyte; + int terminator; int mclength; uschar mcbuffer[8]; - /* Next byte in the pattern */ + /* Get next byte in the pattern */ c = *ptr; - /* If in \Q...\E, check for the end; if not, we have a literal */ + /* If we are in the pre-compile phase, accumulate the length used for the + previous cycle of this loop. */ - if (inescq && c != 0) + if (lengthptr != NULL) { - if (c == '\\' && ptr[1] == 'E') +#ifdef DEBUG + if (code > cd->hwm) cd->hwm = code; /* High water info */ +#endif + if (code > cd->start_workspace + COMPILE_WORK_SIZE) /* Check for overrun */ { - inescq = FALSE; - ptr++; - continue; + *errorcodeptr = ERR52; + goto FAILED; } - else - { - if (previous_callout != NULL) - { - complete_callout(previous_callout, ptr, cd); + + /* There is at least one situation where code goes backwards: this is the + case of a zero quantifier after a class (e.g. [ab]{0}). At compile time, + the class is simply eliminated. However, it is created first, so we have to + allow memory for it. Therefore, don't ever reduce the length at this point. + */ + + if (code < last_code) code = last_code; + *lengthptr += code - last_code; + DPRINTF(("length=%d added %d c=%c\n", *lengthptr, code - last_code, c)); + + /* If "previous" is set and it is not at the start of the work space, move + it back to there, in order to avoid filling up the work space. Otherwise, + if "previous" is NULL, reset the current code pointer to the start. */ + + if (previous != NULL) + { + if (previous > orig_code) + { + memmove(orig_code, previous, code - previous); + code -= previous - orig_code; + previous = orig_code; + } + } + else code = orig_code; + + /* Remember where this code item starts so we can pick up the length + next time round. */ + + last_code = code; + } + + /* In the real compile phase, just check the workspace used by the forward + reference list. */ + + else if (cd->hwm > cd->start_workspace + COMPILE_WORK_SIZE) + { + *errorcodeptr = ERR52; + goto FAILED; + } + + /* If in \Q...\E, check for the end; if not, we have a literal */ + + if (inescq && c != 0) + { + if (c == '\\' && ptr[1] == 'E') + { + inescq = FALSE; + ptr++; + continue; + } + else + { + if (previous_callout != NULL) + { + if (lengthptr == NULL) /* Don't attempt in pre-compile phase */ + complete_callout(previous_callout, ptr, cd); previous_callout = NULL; } if ((options & PCRE_AUTO_CALLOUT) != 0) @@ -1672,7 +2192,8 @@ for (;; ptr++) if (!is_quantifier && previous_callout != NULL && after_manual_callout-- <= 0) { - complete_callout(previous_callout, ptr, cd); + if (lengthptr == NULL) /* Don't attempt in pre-compile phase */ + complete_callout(previous_callout, ptr, cd); previous_callout = NULL; } @@ -1683,10 +2204,14 @@ for (;; ptr++) if ((cd->ctypes[c] & ctype_space) != 0) continue; if (c == '#') { - /* The space before the ; is to avoid a warning on a silly compiler - on the Macintosh. */ - while ((c = *(++ptr)) != 0 && c != NEWLINE) ; - if (c != 0) continue; /* Else fall through to handle end of string */ + while (*(++ptr) != 0) + { + if (IS_NEWLINE(ptr)) { ptr += cd->nllen - 1; break; } + } + if (*ptr != 0) continue; + + /* Else fall through to handle end of string */ + c = 0; } } @@ -1700,17 +2225,23 @@ for (;; ptr++) switch(c) { - /* The branch terminates at end of string, |, or ). */ - - case 0: - case '|': + /* ===================================================================*/ + case 0: /* The branch terminates at string end */ + case '|': /* or | or ) */ case ')': *firstbyteptr = firstbyte; *reqbyteptr = reqbyte; *codeptr = code; *ptrptr = ptr; + if (lengthptr != NULL) + { + *lengthptr += code - last_code; /* To include callout length */ + DPRINTF((">> end branch\n")); + } return TRUE; + + /* ===================================================================*/ /* Handle single-character metacharacters. In multiline mode, ^ disables the setting of any following char as a first character. */ @@ -1739,6 +2270,8 @@ for (;; ptr++) *code++ = OP_ANY; break; + + /* ===================================================================*/ /* Character classes. If the included characters are all < 256, we build a 32-byte bitmap of the permitted characters, except in the special case where there is only one such character. For negated classes, we build the @@ -1777,32 +2310,32 @@ for (;; ptr++) } /* Keep a count of chars with values < 256 so that we can optimize the case - of just a single character (as long as it's < 256). For higher valued UTF-8 - characters, we don't yet do any optimization. */ + of just a single character (as long as it's < 256). However, For higher + valued UTF-8 characters, we don't yet do any optimization. */ class_charcount = 0; class_lastchar = -1; + /* Initialize the 32-char bit map to all zeros. We build the map in a + temporary bit of memory, in case the class contains only 1 character (less + than 256), because in that case the compiled code doesn't use the bit map. + */ + + memset(classbits, 0, 32 * sizeof(uschar)); + #ifdef SUPPORT_UTF8 class_utf8 = FALSE; /* No chars >= 256 */ - class_utf8data = code + LINK_SIZE + 34; /* For UTF-8 items */ + class_utf8data = code + LINK_SIZE + 2; /* For UTF-8 items */ #endif - /* Initialize the 32-char bit map to all zeros. We have to build the - map in a temporary bit of store, in case the class contains only 1 - character (< 256), because in that case the compiled code doesn't use the - bit map. */ - - memset(classbits, 0, 32 * sizeof(uschar)); - /* Process characters until ] is reached. By writing this as a "do" it - means that an initial ] is taken as a data character. The first pass - through the regex checked the overall syntax, so we don't need to be very - strict here. At the start of the loop, c contains the first byte of the - character. */ + means that an initial ] is taken as a data character. At the start of the + loop, c contains the first byte of the character. */ - do + if (c != 0) do { + const uschar *oldptr; + #ifdef SUPPORT_UTF8 if (utf8 && c > 127) { /* Braces are required because the */ @@ -1814,13 +2347,13 @@ for (;; ptr++) if (inescq) { - if (c == '\\' && ptr[1] == 'E') + if (c == '\\' && ptr[1] == 'E') /* If we are at \E */ { - inescq = FALSE; - ptr++; - continue; + inescq = FALSE; /* Reset literal state */ + ptr++; /* Skip the 'E' */ + continue; /* Carry on with next */ } - else goto LONE_SINGLE_CHARACTER; + goto CHECK_RANGE; /* Could be range if \E follows */ } /* Handle POSIX class names. Perl allows a negation extension of the @@ -1911,19 +2444,20 @@ for (;; ptr++) } /* Backslash may introduce a single character, or it may introduce one - of the specials, which just set a flag. Escaped items are checked for - validity in the pre-compiling pass. The sequence \b is a special case. - Inside a class (and only there) it is treated as backspace. Elsewhere - it marks a word boundary. Other escapes have preset maps ready to - or into the one we are building. We assume they have more than one + of the specials, which just set a flag. The sequence \b is a special + case. Inside a class (and only there) it is treated as backspace. + Elsewhere it marks a word boundary. Other escapes have preset maps ready + to or into the one we are building. We assume they have more than one character in them, so set class_charcount bigger than one. */ if (c == '\\') { - c = check_escape(&ptr, errorcodeptr, *brackets, options, TRUE); + c = check_escape(&ptr, errorcodeptr, cd->bracount, options, TRUE); + if (*errorcodeptr != 0) goto FAILED; if (-c == ESC_b) c = '\b'; /* \b is backslash in a class */ else if (-c == ESC_X) c = 'X'; /* \X is literal X in a class */ + else if (-c == ESC_R) c = 'R'; /* \R is literal R in a class */ else if (-c == ESC_Q) /* Handle start of quoted string */ { if (ptr[1] == '\\' && ptr[2] == 'E') @@ -1938,7 +2472,10 @@ for (;; ptr++) { register const uschar *cbits = cd->cbits; class_charcount += 2; /* Greater than 1 is what matters */ - switch (-c) + + /* Save time by not doing this in the pre-compile phase. */ + + if (lengthptr == NULL) switch (-c) { case ESC_d: for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_digit]; @@ -1966,52 +2503,91 @@ for (;; ptr++) classbits[1] |= 0x08; /* Perl 5.004 onwards omits VT from \s */ continue; + case ESC_E: /* Perl ignores an orphan \E */ + continue; + + default: /* Not recognized; fall through */ + break; /* Need "default" setting to stop compiler warning. */ + } + + /* In the pre-compile phase, just do the recognition. */ + + else if (c == -ESC_d || c == -ESC_D || c == -ESC_w || + c == -ESC_W || c == -ESC_s || c == -ESC_S) continue; + + /* We need to deal with \P and \p in both phases. */ + #ifdef SUPPORT_UCP - case ESC_p: - case ESC_P: - { - BOOL negated; - int pdata; - int ptype = get_ucp(&ptr, &negated, &pdata, errorcodeptr); - if (ptype < 0) goto FAILED; - class_utf8 = TRUE; - *class_utf8data++ = ((-c == ESC_p) != negated)? - XCL_PROP : XCL_NOTPROP; - *class_utf8data++ = ptype; - *class_utf8data++ = pdata; - class_charcount -= 2; /* Not a < 256 character */ - } + if (-c == ESC_p || -c == ESC_P) + { + BOOL negated; + int pdata; + int ptype = get_ucp(&ptr, &negated, &pdata, errorcodeptr); + if (ptype < 0) goto FAILED; + class_utf8 = TRUE; + *class_utf8data++ = ((-c == ESC_p) != negated)? + XCL_PROP : XCL_NOTPROP; + *class_utf8data++ = ptype; + *class_utf8data++ = pdata; + class_charcount -= 2; /* Not a < 256 character */ continue; + } #endif + /* Unrecognized escapes are faulted if PCRE is running in its + strict mode. By default, for compatibility with Perl, they are + treated as literals. */ - /* Unrecognized escapes are faulted if PCRE is running in its - strict mode. By default, for compatibility with Perl, they are - treated as literals. */ - - default: - if ((options & PCRE_EXTRA) != 0) - { - *errorcodeptr = ERR7; - goto FAILED; - } - c = *ptr; /* The final character */ - class_charcount -= 2; /* Undo the default count from above */ + if ((options & PCRE_EXTRA) != 0) + { + *errorcodeptr = ERR7; + goto FAILED; } + + class_charcount -= 2; /* Undo the default count from above */ + c = *ptr; /* Get the final character and fall through */ } /* Fall through if we have a single character (c >= 0). This may be - > 256 in UTF-8 mode. */ + greater than 256 in UTF-8 mode. */ } /* End of backslash handling */ /* A single character may be followed by '-' to form a range. However, Perl does not permit ']' to be the end of the range. A '-' character - here is treated as a literal. */ + at the end is treated as a literal. Perl ignores orphaned \E sequences + entirely. The code for handling \Q and \E is messy. */ - if (ptr[1] == '-' && ptr[2] != ']') + CHECK_RANGE: + while (ptr[1] == '\\' && ptr[2] == 'E') + { + inescq = FALSE; + ptr += 2; + } + + oldptr = ptr; + + if (!inescq && ptr[1] == '-') { int d; ptr += 2; + while (*ptr == '\\' && ptr[1] == 'E') ptr += 2; + + /* If we hit \Q (not followed by \E) at this point, go into escaped + mode. */ + + while (*ptr == '\\' && ptr[1] == 'Q') + { + ptr += 2; + if (*ptr == '\\' && ptr[1] == 'E') { ptr += 2; continue; } + inescq = TRUE; + break; + } + + if (*ptr == 0 || (!inescq && *ptr == ']')) + { + ptr = oldptr; + goto LONE_SINGLE_CHARACTER; + } #ifdef SUPPORT_UTF8 if (utf8) @@ -2026,27 +2602,34 @@ for (;; ptr++) not any of the other escapes. Perl 5.6 treats a hyphen as a literal in such circumstances. */ - if (d == '\\') + if (!inescq && d == '\\') { - const uschar *oldptr = ptr; - d = check_escape(&ptr, errorcodeptr, *brackets, options, TRUE); + d = check_escape(&ptr, errorcodeptr, cd->bracount, options, TRUE); + if (*errorcodeptr != 0) goto FAILED; - /* \b is backslash; \X is literal X; any other special means the '-' - was literal */ + /* \b is backslash; \X is literal X; \R is literal R; any other + special means the '-' was literal */ if (d < 0) { if (d == -ESC_b) d = '\b'; - else if (d == -ESC_X) d = 'X'; else + else if (d == -ESC_X) d = 'X'; + else if (d == -ESC_R) d = 'R'; else { - ptr = oldptr - 2; + ptr = oldptr; goto LONE_SINGLE_CHARACTER; /* A few lines below */ } } } - /* The check that the two values are in the correct order happens in - the pre-pass. Optimize one-character ranges */ + /* Check that the two values are in the correct order. Optimize + one-character ranges */ + + if (d < c) + { + *errorcodeptr = ERR8; + goto FAILED; + } if (d == c) goto LONE_SINGLE_CHARACTER; /* A few lines below */ @@ -2067,9 +2650,9 @@ for (;; ptr++) #ifdef SUPPORT_UCP if ((options & PCRE_CASELESS) != 0) { - int occ, ocd; - int cc = c; - int origd = d; + unsigned int occ, ocd; + unsigned int cc = c; + unsigned int origd = d; while (get_othercase_range(&cc, origd, &occ, &ocd)) { if (occ >= c && ocd <= d) continue; /* Skip embedded ranges */ @@ -2127,7 +2710,12 @@ for (;; ptr++) ranges that lie entirely within 0-127 when there is UCP support; else for partial ranges without UCP support. */ - for (; c <= d; c++) + class_charcount += d - c + 1; + class_lastchar = d; + + /* We can save a bit of time by skipping this in the pre-compile. */ + + if (lengthptr == NULL) for (; c <= d; c++) { classbits[c/8] |= (1 << (c&7)); if ((options & PCRE_CASELESS) != 0) @@ -2135,8 +2723,6 @@ for (;; ptr++) int uc = cd->fcc[c]; /* flip case */ classbits[uc/8] |= (1 << (uc&7)); } - class_charcount++; /* in case a one-char range */ - class_lastchar = c; } continue; /* Go get the next char in the class */ @@ -2160,8 +2746,8 @@ for (;; ptr++) #ifdef SUPPORT_UCP if ((options & PCRE_CASELESS) != 0) { - int othercase; - if ((othercase = _pcre_ucp_othercase(c)) >= 0) + unsigned int othercase; + if ((othercase = _pcre_ucp_othercase(c)) != NOTACHAR) { *class_utf8data++ = XCL_SINGLE; class_utf8data += _pcre_ord2utf8(othercase, class_utf8data); @@ -2186,10 +2772,15 @@ for (;; ptr++) } } - /* Loop until ']' reached; the check for end of string happens inside the - loop. This "while" is the end of the "do" above. */ + /* Loop until ']' reached. This "while" is the end of the "do" above. */ - while ((c = *(++ptr)) != ']' || inescq); + while ((c = *(++ptr)) != 0 && (c != ']' || inescq)); + + if (c == 0) /* Missing terminating ']' */ + { + *errorcodeptr = ERR6; + goto FAILED; + } /* If class_charcount is 1, we saw precisely one character whose value is less than 256. In non-UTF-8 mode we can always optimize. In UTF-8 mode, we @@ -2253,7 +2844,7 @@ for (;; ptr++) /* If there are characters with values > 255, we have to compile an extended class, with its own opcode. If there are no characters < 256, - we can omit the bitmap. */ + we can omit the bitmap in the actual compiled code. */ #ifdef SUPPORT_UTF8 if (class_utf8) @@ -2263,24 +2854,17 @@ for (;; ptr++) code += LINK_SIZE; *code = negate_class? XCL_NOT : 0; - /* If the map is required, install it, and move on to the end of - the extra data */ + /* If the map is required, move up the extra data to make room for it; + otherwise just move the code pointer to the end of the extra data. */ if (class_charcount > 0) { *code++ |= XCL_MAP; + memmove(code + 32, code, class_utf8data - code); memcpy(code, classbits, 32); - code = class_utf8data; - } - - /* If the map is not required, slide down the extra data. */ - - else - { - int len = class_utf8data - (code + 33); - memmove(code + 1, code + 33, len); - code += len + 1; + code = class_utf8data + 32; } + else code = class_utf8data; /* Now fill in the complete length of the item */ @@ -2297,7 +2881,8 @@ for (;; ptr++) if (negate_class) { *code++ = OP_NCLASS; - for (c = 0; c < 32; c++) code[c] = ~classbits[c]; + if (lengthptr == NULL) /* Save time in the pre-compile phase */ + for (c = 0; c < 32; c++) code[c] = ~classbits[c]; } else { @@ -2307,6 +2892,8 @@ for (;; ptr++) code += 32; break; + + /* ===================================================================*/ /* Various kinds of repeat; '{' is not necessarily a quantifier, but this has been tested above. */ @@ -2374,20 +2961,6 @@ for (;; ptr++) } else repeat_type = greedy_default; - /* If previous was a recursion, we need to wrap it inside brackets so that - it can be replicated if necessary. */ - - if (*previous == OP_RECURSE) - { - memmove(previous + 1 + LINK_SIZE, previous, 1 + LINK_SIZE); - code += 1 + LINK_SIZE; - *previous = OP_BRA; - PUT(previous, 1, code - previous); - *code = OP_KET; - PUT(code, 1, code - previous); - code += 1 + LINK_SIZE; - } - /* If previous was a character match, abolish the item and generate a repeat item instead. If a char item has a minumum of more than one, ensure that it is set in reqbyte - it might not be if a sequence such as x{3} is @@ -2421,18 +2994,40 @@ for (;; ptr++) if (repeat_min > 1) reqbyte = c | req_caseopt | cd->req_varyopt; } + /* If the repetition is unlimited, it pays to see if the next thing on + the line is something that cannot possibly match this character. If so, + automatically possessifying this item gains some performance in the case + where the match fails. */ + + if (!possessive_quantifier && + repeat_max < 0 && + check_auto_possessive(*previous, c, utf8, utf8_char, ptr + 1, + options, cd)) + { + repeat_type = 0; /* Force greedy */ + possessive_quantifier = TRUE; + } + goto OUTPUT_SINGLE_REPEAT; /* Code shared with single character types */ } /* If previous was a single negated character ([^a] or similar), we use one of the special opcodes, replacing it. The code is shared with single- character repeats by setting opt_type to add a suitable offset into - repeat_type. OP_NOT is currently used only for single-byte chars. */ + repeat_type. We can also test for auto-possessification. OP_NOT is + currently used only for single-byte chars. */ else if (*previous == OP_NOT) { op_type = OP_NOTSTAR - OP_STAR; /* Use "not" opcodes */ c = previous[1]; + if (!possessive_quantifier && + repeat_max < 0 && + check_auto_possessive(OP_NOT, c, utf8, NULL, ptr + 1, options, cd)) + { + repeat_type = 0; /* Force greedy */ + possessive_quantifier = TRUE; + } goto OUTPUT_SINGLE_REPEAT; } @@ -2450,6 +3045,14 @@ for (;; ptr++) op_type = OP_TYPESTAR - OP_STAR; /* Use type opcodes */ c = *previous; + if (!possessive_quantifier && + repeat_max < 0 && + check_auto_possessive(c, 0, utf8, NULL, ptr + 1, options, cd)) + { + repeat_type = 0; /* Force greedy */ + possessive_quantifier = TRUE; + } + OUTPUT_SINGLE_REPEAT: if (*previous == OP_PROP || *previous == OP_NOTPROP) { @@ -2490,7 +3093,7 @@ for (;; ptr++) } /* A repeat minimum of 1 is optimized into some special cases. If the - maximum is unlimited, we use OP_PLUS. Otherwise, the original item it + maximum is unlimited, we use OP_PLUS. Otherwise, the original item is left in place and, if the maximum is greater than 1, we use OP_UPTO with one less than the maximum. */ @@ -2543,7 +3146,8 @@ for (;; ptr++) } /* Else insert an UPTO if the max is greater than the min, again - preceded by the character, for the previously inserted code. */ + preceded by the character, for the previously inserted code. If the + UPTO is just for 1 instance, we can use QUERY instead. */ else if (repeat_max != repeat_min) { @@ -2562,8 +3166,16 @@ for (;; ptr++) *code++ = prop_value; } repeat_max -= repeat_min; - *code++ = OP_UPTO + repeat_type; - PUT2INC(code, 0, repeat_max); + + if (repeat_max == 1) + { + *code++ = OP_QUERY + repeat_type; + } + else + { + *code++ = OP_UPTO + repeat_type; + PUT2INC(code, 0, repeat_max); + } } } @@ -2630,14 +3242,30 @@ for (;; ptr++) /* If previous was a bracket group, we may have to replicate it in certain cases. */ - else if (*previous >= OP_BRA || *previous == OP_ONCE || - *previous == OP_COND) + else if (*previous == OP_BRA || *previous == OP_CBRA || + *previous == OP_ONCE || *previous == OP_COND) { register int i; int ketoffset = 0; int len = code - previous; uschar *bralink = NULL; + /* Repeating a DEFINE group is pointless */ + + if (*previous == OP_COND && previous[LINK_SIZE+1] == OP_DEF) + { + *errorcodeptr = ERR55; + goto FAILED; + } + + /* This is a paranoid check to stop integer overflow later on */ + + if (len > MAX_DUPLENGTH) + { + *errorcodeptr = ERR50; + goto FAILED; + } + /* If the maximum repeat count is unlimited, find the end of the bracket by scanning through from the start, and compute the offset back to it from the current code pointer. There may be an OP_OPT setting following @@ -2672,13 +3300,14 @@ for (;; ptr++) /* If the maximum is 1 or unlimited, we just have to stick in the BRAZERO and do no more at this point. However, we do need to adjust any OP_RECURSE calls inside the group that refer to the group itself or - any internal group, because the offset is from the start of the whole - regex. Temporarily terminate the pattern while doing this. */ + any internal or forward referenced group, because the offset is from + the start of the whole regex. Temporarily terminate the pattern while + doing this. */ if (repeat_max <= 1) { *code = OP_END; - adjust_recurse(previous, 1, utf8, cd); + adjust_recurse(previous, 1, utf8, cd, save_hwm); memmove(previous+1, previous, len); code++; *previous++ = OP_BRAZERO + repeat_type; @@ -2696,7 +3325,7 @@ for (;; ptr++) { int offset; *code = OP_END; - adjust_recurse(previous, 2 + LINK_SIZE, utf8, cd); + adjust_recurse(previous, 2 + LINK_SIZE, utf8, cd, save_hwm); memmove(previous + 2 + LINK_SIZE, previous, len); code += 2 + LINK_SIZE; *previous++ = OP_BRAZERO + repeat_type; @@ -2716,19 +3345,41 @@ for (;; ptr++) /* If the minimum is greater than zero, replicate the group as many times as necessary, and adjust the maximum to the number of subsequent copies that we need. If we set a first char from the group, and didn't - set a required char, copy the latter from the former. */ + set a required char, copy the latter from the former. If there are any + forward reference subroutine calls in the group, there will be entries on + the workspace list; replicate these with an appropriate increment. */ else { if (repeat_min > 1) { - if (groupsetfirstbyte && reqbyte < 0) reqbyte = firstbyte; - for (i = 1; i < repeat_min; i++) + /* In the pre-compile phase, we don't actually do the replication. We + just adjust the length as if we had. */ + + if (lengthptr != NULL) + *lengthptr += (repeat_min - 1)*length_prevgroup; + + /* This is compiling for real */ + + else { - memcpy(code, previous, len); - code += len; + if (groupsetfirstbyte && reqbyte < 0) reqbyte = firstbyte; + for (i = 1; i < repeat_min; i++) + { + uschar *hc; + uschar *this_hwm = cd->hwm; + memcpy(code, previous, len); + for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) + { + PUT(cd->hwm, 0, GET(hc, 0) + len); + cd->hwm += LINK_SIZE; + } + save_hwm = this_hwm; + code += len; + } } } + if (repeat_max > 0) repeat_max -= repeat_min; } @@ -2736,12 +3387,27 @@ for (;; ptr++) the maximum is limited, it replicates the group in a nested fashion, remembering the bracket starts on a stack. In the case of a zero minimum, the first one was set up above. In all cases the repeat_max now specifies - the number of additional copies needed. */ + the number of additional copies needed. Again, we must remember to + replicate entries on the forward reference list. */ if (repeat_max >= 0) { - for (i = repeat_max - 1; i >= 0; i--) + /* In the pre-compile phase, we don't actually do the replication. We + just adjust the length as if we had. For each repetition we must add 1 + to the length for BRAZERO and for all but the last repetition we must + add 2 + 2*LINKSIZE to allow for the nesting that occurs. */ + + if (lengthptr != NULL && repeat_max > 0) + *lengthptr += repeat_max * (length_prevgroup + 1 + 2 + 2*LINK_SIZE) - + 2 - 2*LINK_SIZE; /* Last one doesn't nest */ + + /* This is compiling for real */ + + else for (i = repeat_max - 1; i >= 0; i--) { + uschar *hc; + uschar *this_hwm = cd->hwm; + *code++ = OP_BRAZERO + repeat_type; /* All but the final copy start a new nesting, maintaining the @@ -2757,6 +3423,12 @@ for (;; ptr++) } memcpy(code, previous, len); + for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) + { + PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1)); + cd->hwm += LINK_SIZE; + } + save_hwm = this_hwm; code += len; } @@ -2779,9 +3451,34 @@ for (;; ptr++) /* If the maximum is unlimited, set a repeater in the final copy. We can't just offset backwards from the current code point, because we don't know if there's been an options resetting after the ket. The - correct offset was computed above. */ + correct offset was computed above. - else code[-ketoffset] = OP_KETRMAX + repeat_type; + Then, when we are doing the actual compile phase, check to see whether + this group is a non-atomic one that could match an empty string. If so, + convert the initial operator to the S form (e.g. OP_BRA -> OP_SBRA) so + that runtime checking can be done. [This check is also applied to + atomic groups at runtime, but in a different way.] */ + + else + { + uschar *ketcode = code - ketoffset; + uschar *bracode = ketcode - GET(ketcode, 1); + *ketcode = OP_KETRMAX + repeat_type; + if (lengthptr == NULL && *bracode != OP_ONCE) + { + uschar *scode = bracode; + do + { + if (could_be_empty_branch(scode, ketcode, utf8)) + { + *bracode += OP_SBRA - OP_BRA; + break; + } + scode += GET(scode, 1); + } + while (*scode == OP_ALT); + } + } } /* Else there's some kind of shambles */ @@ -2792,22 +3489,53 @@ for (;; ptr++) goto FAILED; } - /* If the character following a repeat is '+', we wrap the entire repeated - item inside OP_ONCE brackets. This is just syntactic sugar, taken from - Sun's Java package. The repeated item starts at tempcode, not at previous, - which might be the first part of a string whose (former) last char we - repeated. However, we don't support '+' after a greediness '?'. */ + /* If the character following a repeat is '+', or if certain optimization + tests above succeeded, possessive_quantifier is TRUE. For some of the + simpler opcodes, there is an special alternative opcode for this. For + anything else, we wrap the entire repeated item inside OP_ONCE brackets. + The '+' notation is just syntactic sugar, taken from Sun's Java package, + but the special opcodes can optimize it a bit. The repeated item starts at + tempcode, not at previous, which might be the first part of a string whose + (former) last char we repeated. + + Possessifying an 'exact' quantifier has no effect, so we can ignore it. But + an 'upto' may follow. We skip over an 'exact' item, and then test the + length of what remains before proceeding. */ if (possessive_quantifier) { - int len = code - tempcode; - memmove(tempcode + 1+LINK_SIZE, tempcode, len); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; - tempcode[0] = OP_ONCE; - *code++ = OP_KET; - PUTINC(code, 0, len); - PUT(tempcode, 1, len); + int len; + if (*tempcode == OP_EXACT || *tempcode == OP_TYPEEXACT || + *tempcode == OP_NOTEXACT) + tempcode += _pcre_OP_lengths[*tempcode]; + len = code - tempcode; + if (len > 0) switch (*tempcode) + { + case OP_STAR: *tempcode = OP_POSSTAR; break; + case OP_PLUS: *tempcode = OP_POSPLUS; break; + case OP_QUERY: *tempcode = OP_POSQUERY; break; + case OP_UPTO: *tempcode = OP_POSUPTO; break; + + case OP_TYPESTAR: *tempcode = OP_TYPEPOSSTAR; break; + case OP_TYPEPLUS: *tempcode = OP_TYPEPOSPLUS; break; + case OP_TYPEQUERY: *tempcode = OP_TYPEPOSQUERY; break; + case OP_TYPEUPTO: *tempcode = OP_TYPEPOSUPTO; break; + + case OP_NOTSTAR: *tempcode = OP_NOTPOSSTAR; break; + case OP_NOTPLUS: *tempcode = OP_NOTPOSPLUS; break; + case OP_NOTQUERY: *tempcode = OP_NOTPOSQUERY; break; + case OP_NOTUPTO: *tempcode = OP_NOTPOSUPTO; break; + + default: + memmove(tempcode + 1+LINK_SIZE, tempcode, len); + code += 1 + LINK_SIZE; + len += 1 + LINK_SIZE; + tempcode[0] = OP_ONCE; + *code++ = OP_KET; + PUTINC(code, 0, len); + PUT(tempcode, 1, len); + break; + } } /* In all case we no longer have a previous item. We also set the @@ -2820,108 +3548,275 @@ for (;; ptr++) break; - /* Start of nested bracket sub-expression, or comment or lookahead or - lookbehind or option setting or condition. First deal with special things - that can come after a bracket; all are introduced by ?, and the appearance - of any of them means that this is not a referencing group. They were - checked for validity in the first pass over the string, so we don't have to - check for syntax errors here. */ + /* ===================================================================*/ + /* Start of nested parenthesized sub-expression, or comment or lookahead or + lookbehind or option setting or condition or all the other extended + parenthesis forms. First deal with the specials; all are introduced by ?, + and the appearance of any of them means that this is not a capturing + group. */ case '(': newoptions = options; skipbytes = 0; + bravalue = OP_CBRA; + save_hwm = cd->hwm; if (*(++ptr) == '?') { - int set, unset; + int i, set, unset, namelen; int *optset; + const uschar *name; + uschar *slot; switch (*(++ptr)) { case '#': /* Comment; skip to ket */ ptr++; - while (*ptr != ')') ptr++; + while (*ptr != 0 && *ptr != ')') ptr++; + if (*ptr == 0) + { + *errorcodeptr = ERR18; + goto FAILED; + } continue; - case ':': /* Non-extracting bracket */ + + /* ------------------------------------------------------------ */ + case ':': /* Non-capturing bracket */ bravalue = OP_BRA; ptr++; break; + + /* ------------------------------------------------------------ */ case '(': bravalue = OP_COND; /* Conditional group */ - /* Condition to test for recursion */ + /* A condition can be an assertion, a number (referring to a numbered + group), a name (referring to a named group), or 'R', referring to + recursion. R and R&name are also permitted for recursion tests. + + There are several syntaxes for testing a named group: (?(name)) is used + by Python; Perl 5.10 onwards uses (?() or (?('name')). + + There are two unfortunate ambiguities, caused by history. (a) 'R' can + be the recursive thing or the name 'R' (and similarly for 'R' followed + by digits), and (b) a number could be a name that consists of digits. + In both cases, we look for a name first; if not found, we try the other + cases. */ + + /* For conditions that are assertions, check the syntax, and then exit + the switch. This will take control down to where bracketed groups, + including assertions, are processed. */ + + if (ptr[1] == '?' && (ptr[2] == '=' || ptr[2] == '!' || ptr[2] == '<')) + break; + + /* Most other conditions use OP_CREF (a couple change to OP_RREF + below), and all need to skip 3 bytes at the start of the group. */ + + code[1+LINK_SIZE] = OP_CREF; + skipbytes = 3; + + /* Check for a test for recursion in a named group. */ + + if (ptr[1] == 'R' && ptr[2] == '&') + { + terminator = -1; + ptr += 2; + code[1+LINK_SIZE] = OP_RREF; /* Change the type of test */ + } + + /* Check for a test for a named group's having been set, using the Perl + syntax (?() or (?('name') */ + + else if (ptr[1] == '<') + { + terminator = '>'; + ptr++; + } + else if (ptr[1] == '\'') + { + terminator = '\''; + ptr++; + } + else terminator = 0; + + /* We now expect to read a name; any thing else is an error */ + + if ((cd->ctypes[ptr[1]] & ctype_word) == 0) + { + ptr += 1; /* To get the right offset */ + *errorcodeptr = ERR28; + goto FAILED; + } + + /* Read the name, but also get it as a number if it's all digits */ + + recno = 0; + name = ++ptr; + while ((cd->ctypes[*ptr] & ctype_word) != 0) + { + if (recno >= 0) + recno = ((digitab[*ptr] & ctype_digit) != 0)? + recno * 10 + *ptr - '0' : -1; + ptr++; + } + namelen = ptr - name; + + if ((terminator > 0 && *ptr++ != terminator) || *ptr++ != ')') + { + ptr--; /* Error offset */ + *errorcodeptr = ERR26; + goto FAILED; + } + + /* Do no further checking in the pre-compile phase. */ + + if (lengthptr != NULL) break; + + /* In the real compile we do the work of looking for the actual + reference. */ + + slot = cd->name_table; + for (i = 0; i < cd->names_found; i++) + { + if (strncmp((char *)name, (char *)slot+2, namelen) == 0) break; + slot += cd->name_entry_size; + } + + /* Found a previous named subpattern */ + + if (i < cd->names_found) + { + recno = GET2(slot, 0); + PUT2(code, 2+LINK_SIZE, recno); + } + + /* Search the pattern for a forward reference */ + + else if ((i = find_parens(ptr, cd->bracount, name, namelen, + (options & PCRE_EXTENDED) != 0)) > 0) + { + PUT2(code, 2+LINK_SIZE, i); + } - if (ptr[1] == 'R') + /* If terminator == 0 it means that the name followed directly after + the opening parenthesis [e.g. (?(abc)...] and in this case there are + some further alternatives to try. For the cases where terminator != 0 + [things like (?(... or (?('name')... or (?(R&name)... ] we have + now checked all the possibilities, so give an error. */ + + else if (terminator != 0) { - code[1+LINK_SIZE] = OP_CREF; - PUT2(code, 2+LINK_SIZE, CREF_RECURSE); - skipbytes = 3; - ptr += 3; + *errorcodeptr = ERR15; + goto FAILED; } - /* Condition to test for a numbered subpattern match. We know that - if a digit follows ( then there will just be digits until ) because - the syntax was checked in the first pass. */ + /* Check for (?(R) for recursion. Allow digits after R to specify a + specific group number. */ - else if ((digitab[ptr[1]] && ctype_digit) != 0) + else if (*name == 'R') { - int condref; /* Don't amalgamate; some compilers */ - condref = *(++ptr) - '0'; /* grumble at autoincrement in declaration */ - while (*(++ptr) != ')') condref = condref*10 + *ptr - '0'; - if (condref == 0) + recno = 0; + for (i = 1; i < namelen; i++) { - *errorcodeptr = ERR35; - goto FAILED; + if ((digitab[name[i]] & ctype_digit) == 0) + { + *errorcodeptr = ERR15; + goto FAILED; + } + recno = recno * 10 + name[i] - '0'; } - ptr++; - code[1+LINK_SIZE] = OP_CREF; - PUT2(code, 2+LINK_SIZE, condref); - skipbytes = 3; + if (recno == 0) recno = RREF_ANY; + code[1+LINK_SIZE] = OP_RREF; /* Change test type */ + PUT2(code, 2+LINK_SIZE, recno); + } + + /* Similarly, check for the (?(DEFINE) "condition", which is always + false. */ + + else if (namelen == 6 && strncmp((char *)name, "DEFINE", 6) == 0) + { + code[1+LINK_SIZE] = OP_DEF; + skipbytes = 1; + } + + /* Check for the "name" actually being a subpattern number. */ + + else if (recno > 0) + { + PUT2(code, 2+LINK_SIZE, recno); + } + + /* Either an unidentified subpattern, or a reference to (?(0) */ + + else + { + *errorcodeptr = (recno == 0)? ERR35: ERR15; + goto FAILED; } - /* For conditions that are assertions, we just fall through, having - set bravalue above. */ break; + + /* ------------------------------------------------------------ */ case '=': /* Positive lookahead */ bravalue = OP_ASSERT; ptr++; break; + + /* ------------------------------------------------------------ */ case '!': /* Negative lookahead */ bravalue = OP_ASSERT_NOT; ptr++; break; - case '<': /* Lookbehinds */ - switch (*(++ptr)) + + /* ------------------------------------------------------------ */ + case '<': /* Lookbehind or named define */ + switch (ptr[1]) { case '=': /* Positive lookbehind */ bravalue = OP_ASSERTBACK; - ptr++; + ptr += 2; break; case '!': /* Negative lookbehind */ bravalue = OP_ASSERTBACK_NOT; - ptr++; + ptr += 2; break; + + default: /* Could be name define, else bad */ + if ((cd->ctypes[ptr[1]] & ctype_word) != 0) goto DEFINE_NAME; + ptr++; /* Correct offset for error */ + *errorcodeptr = ERR24; + goto FAILED; } break; + + /* ------------------------------------------------------------ */ case '>': /* One-time brackets */ bravalue = OP_ONCE; ptr++; break; + + /* ------------------------------------------------------------ */ case 'C': /* Callout - may be followed by digits; */ previous_callout = code; /* Save for later completion */ after_manual_callout = 1; /* Skip one item before completing */ - *code++ = OP_CALLOUT; /* Already checked that the terminating */ - { /* closing parenthesis is present. */ + *code++ = OP_CALLOUT; + { int n = 0; while ((digitab[*(++ptr)] & ctype_digit) != 0) n = n * 10 + *ptr - '0'; + if (*ptr != ')') + { + *errorcodeptr = ERR39; + goto FAILED; + } if (n > 255) { *errorcodeptr = ERR38; @@ -2935,128 +3830,232 @@ for (;; ptr++) previous = NULL; continue; - case 'P': /* Named subpattern handling */ - if (*(++ptr) == '<') /* Definition */ - { - int i, namelen; - uschar *slot = cd->name_table; - const uschar *name; /* Don't amalgamate; some compilers */ - name = ++ptr; /* grumble at autoincrement in declaration */ - - while (*ptr++ != '>'); - namelen = ptr - name - 1; - for (i = 0; i < cd->names_found; i++) + /* ------------------------------------------------------------ */ + case 'P': /* Python-style named subpattern handling */ + if (*(++ptr) == '=' || *ptr == '>') /* Reference or recursion */ + { + is_recurse = *ptr == '>'; + terminator = ')'; + goto NAMED_REF_OR_RECURSE; + } + else if (*ptr != '<') /* Test for Python-style definition */ + { + *errorcodeptr = ERR41; + goto FAILED; + } + /* Fall through to handle (?P< as (?< is handled */ + + + /* ------------------------------------------------------------ */ + DEFINE_NAME: /* Come here from (?< handling */ + case '\'': + { + terminator = (*ptr == '<')? '>' : '\''; + name = ++ptr; + + while ((cd->ctypes[*ptr] & ctype_word) != 0) ptr++; + namelen = ptr - name; + + /* In the pre-compile phase, just do a syntax check. */ + + if (lengthptr != NULL) { - int crc = memcmp(name, slot+2, namelen); - if (crc == 0) + if (*ptr != terminator) + { + *errorcodeptr = ERR42; + goto FAILED; + } + if (cd->names_found >= MAX_NAME_COUNT) { - if (slot[2+namelen] == 0) + *errorcodeptr = ERR49; + goto FAILED; + } + if (namelen + 3 > cd->name_entry_size) + { + cd->name_entry_size = namelen + 3; + if (namelen > MAX_NAME_SIZE) { - *errorcodeptr = ERR43; + *errorcodeptr = ERR48; goto FAILED; } - crc = -1; /* Current name is substring */ } - if (crc < 0) + } + + /* In the real compile, create the entry in the table */ + + else + { + slot = cd->name_table; + for (i = 0; i < cd->names_found; i++) { - memmove(slot + cd->name_entry_size, slot, - (cd->names_found - i) * cd->name_entry_size); - break; + int crc = memcmp(name, slot+2, namelen); + if (crc == 0) + { + if (slot[2+namelen] == 0) + { + if ((options & PCRE_DUPNAMES) == 0) + { + *errorcodeptr = ERR43; + goto FAILED; + } + } + else crc = -1; /* Current name is substring */ + } + if (crc < 0) + { + memmove(slot + cd->name_entry_size, slot, + (cd->names_found - i) * cd->name_entry_size); + break; + } + slot += cd->name_entry_size; } - slot += cd->name_entry_size; - } - PUT2(slot, 0, *brackets + 1); - memcpy(slot + 2, name, namelen); - slot[2+namelen] = 0; - cd->names_found++; - goto NUMBERED_GROUP; + PUT2(slot, 0, cd->bracount + 1); + memcpy(slot + 2, name, namelen); + slot[2+namelen] = 0; + } } - if (*ptr == '=' || *ptr == '>') /* Reference or recursion */ + /* In both cases, count the number of names we've encountered. */ + + ptr++; /* Move past > or ' */ + cd->names_found++; + goto NUMBERED_GROUP; + + + /* ------------------------------------------------------------ */ + case '&': /* Perl recursion/subroutine syntax */ + terminator = ')'; + is_recurse = TRUE; + /* Fall through */ + + /* We come here from the Python syntax above that handles both + references (?P=name) and recursion (?P>name), as well as falling + through from the Perl recursion syntax (?&name). */ + + NAMED_REF_OR_RECURSE: + name = ++ptr; + while ((cd->ctypes[*ptr] & ctype_word) != 0) ptr++; + namelen = ptr - name; + + /* In the pre-compile phase, do a syntax check and set a dummy + reference number. */ + + if (lengthptr != NULL) { - int i, namelen; - int type = *ptr++; - const uschar *name = ptr; - uschar *slot = cd->name_table; + if (*ptr != terminator) + { + *errorcodeptr = ERR42; + goto FAILED; + } + if (namelen > MAX_NAME_SIZE) + { + *errorcodeptr = ERR48; + goto FAILED; + } + recno = 0; + } - while (*ptr != ')') ptr++; - namelen = ptr - name; + /* In the real compile, seek the name in the table */ + else + { + slot = cd->name_table; for (i = 0; i < cd->names_found; i++) { if (strncmp((char *)name, (char *)slot+2, namelen) == 0) break; slot += cd->name_entry_size; } - if (i >= cd->names_found) + + if (i < cd->names_found) /* Back reference */ + { + recno = GET2(slot, 0); + } + else if ((recno = /* Forward back reference */ + find_parens(ptr, cd->bracount, name, namelen, + (options & PCRE_EXTENDED) != 0)) <= 0) { *errorcodeptr = ERR15; goto FAILED; } + } - recno = GET2(slot, 0); - - if (type == '>') goto HANDLE_RECURSION; /* A few lines below */ - - /* Back reference */ + /* In both phases, we can now go to the code than handles numerical + recursion or backreferences. */ - previous = code; - *code++ = OP_REF; - PUT2INC(code, 0, recno); - cd->backref_map |= (recno < 32)? (1 << recno) : 1; - if (recno > cd->top_backref) cd->top_backref = recno; - continue; - } + if (is_recurse) goto HANDLE_RECURSION; + else goto HANDLE_REFERENCE; - /* Should never happen */ - break; - case 'R': /* Pattern recursion */ + /* ------------------------------------------------------------ */ + case 'R': /* Recursion */ ptr++; /* Same as (?0) */ /* Fall through */ - /* Recursion or "subroutine" call */ - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': + /* ------------------------------------------------------------ */ + case '0': case '1': case '2': case '3': case '4': /* Recursion or */ + case '5': case '6': case '7': case '8': case '9': /* subroutine */ { const uschar *called; recno = 0; while((digitab[*ptr] & ctype_digit) != 0) recno = recno * 10 + *ptr++ - '0'; + if (*ptr != ')') + { + *errorcodeptr = ERR29; + goto FAILED; + } /* Come here from code above that handles a named recursion */ HANDLE_RECURSION: previous = code; + called = cd->start_code; - /* Find the bracket that is being referenced. Temporarily end the - regex in case it doesn't exist. */ - - *code = OP_END; - called = (recno == 0)? - cd->start_code : find_bracket(cd->start_code, utf8, recno); + /* When we are actually compiling, find the bracket that is being + referenced. Temporarily end the regex in case it doesn't exist before + this point. If we end up with a forward reference, first check that + the bracket does occur later so we can give the error (and position) + now. Then remember this forward reference in the workspace so it can + be filled in at the end. */ - if (called == NULL) + if (lengthptr == NULL) { - *errorcodeptr = ERR15; - goto FAILED; - } + *code = OP_END; + if (recno != 0) called = find_bracket(cd->start_code, utf8, recno); - /* If the subpattern is still open, this is a recursive call. We - check to see if this is a left recursion that could loop for ever, - and diagnose that case. */ + /* Forward reference */ - if (GET(called, 1) == 0 && could_be_empty(called, code, bcptr, utf8)) - { - *errorcodeptr = ERR40; - goto FAILED; + if (called == NULL) + { + if (find_parens(ptr, cd->bracount, NULL, recno, + (options & PCRE_EXTENDED) != 0) < 0) + { + *errorcodeptr = ERR15; + goto FAILED; + } + called = cd->start_code + recno; + PUTINC(cd->hwm, 0, code + 2 + LINK_SIZE - cd->start_code); + } + + /* If not a forward reference, and the subpattern is still open, + this is a recursive call. We check to see if this is a left + recursion that could loop for ever, and diagnose that case. */ + + else if (GET(called, 1) == 0 && + could_be_empty(called, code, bcptr, utf8)) + { + *errorcodeptr = ERR40; + goto FAILED; + } } /* Insert the recursion/subroutine item, automatically wrapped inside - "once" brackets. */ + "once" brackets. Set up a "previous group" length so that a + subsequent quantifier will work. */ *code = OP_ONCE; PUT(code, 1, 2 + 2*LINK_SIZE); @@ -3069,12 +4068,18 @@ for (;; ptr++) *code = OP_KET; PUT(code, 1, 2 + 2*LINK_SIZE); code += 1 + LINK_SIZE; + + length_prevgroup = 3 + 3*LINK_SIZE; } + + /* Can't determine a first byte now */ + + if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; continue; - /* Character after (? not specially recognized */ - default: /* Option setting */ + /* ------------------------------------------------------------ */ + default: /* Other characters: check option setting */ set = unset = 0; optset = &set; @@ -3084,12 +4089,21 @@ for (;; ptr++) { case '-': optset = &unset; break; + case 'J': /* Record that it changed in the external options */ + *optset |= PCRE_DUPNAMES; + cd->external_options |= PCRE_JCHANGED; + break; + case 'i': *optset |= PCRE_CASELESS; break; case 'm': *optset |= PCRE_MULTILINE; break; case 's': *optset |= PCRE_DOTALL; break; case 'x': *optset |= PCRE_EXTENDED; break; case 'U': *optset |= PCRE_UNGREEDY; break; case 'X': *optset |= PCRE_EXTRA; break; + + default: *errorcodeptr = ERR12; + ptr--; /* Correct the offset */ + goto FAILED; } } @@ -3098,32 +4112,54 @@ for (;; ptr++) newoptions = (options | set) & (~unset); /* If the options ended with ')' this is not the start of a nested - group with option changes, so the options change at this level. Compile - code to change the ims options if this setting actually changes any of - them. We also pass the new setting back so that it can be put at the - start of any following branches, and when this group ends (if we are in - a group), a resetting item can be compiled. - - Note that if this item is right at the start of the pattern, the - options will have been abstracted and made global, so there will be no - change to compile. */ + group with option changes, so the options change at this level. If this + item is right at the start of the pattern, the options can be + abstracted and made external in the pre-compile phase, and ignored in + the compile phase. This can be helpful when matching -- for instance in + caseless checking of required bytes. + + If the code pointer is not (cd->start_code + 1 + LINK_SIZE), we are + definitely *not* at the start of the pattern because something has been + compiled. In the pre-compile phase, however, the code pointer can have + that value after the start, because it gets reset as code is discarded + during the pre-compile. However, this can happen only at top level - if + we are within parentheses, the starting BRA will still be present. At + any parenthesis level, the length value can be used to test if anything + has been compiled at that level. Thus, a test for both these conditions + is necessary to ensure we correctly detect the start of the pattern in + both phases. + + If we are not at the pattern start, compile code to change the ims + options if this setting actually changes any of them. We also pass the + new setting back so that it can be put at the start of any following + branches, and when this group ends (if we are in a group), a resetting + item can be compiled. */ if (*ptr == ')') { - if ((options & PCRE_IMS) != (newoptions & PCRE_IMS)) + if (code == cd->start_code + 1 + LINK_SIZE && + (lengthptr == NULL || *lengthptr == 2 + 2*LINK_SIZE)) { - *code++ = OP_OPT; - *code++ = newoptions & PCRE_IMS; + cd->external_options = newoptions; + options = newoptions; } + else + { + if ((options & PCRE_IMS) != (newoptions & PCRE_IMS)) + { + *code++ = OP_OPT; + *code++ = newoptions & PCRE_IMS; + } - /* Change options at this level, and pass them back for use - in subsequent branches. Reset the greedy defaults and the case - value for firstbyte and reqbyte. */ - - *optionsptr = options = newoptions; - greedy_default = ((newoptions & PCRE_UNGREEDY) != 0); - greedy_non_default = greedy_default ^ 1; - req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0; + /* Change options at this level, and pass them back for use + in subsequent branches. Reset the greedy defaults and the case + value for firstbyte and reqbyte. */ + + *optionsptr = options = newoptions; + greedy_default = ((newoptions & PCRE_UNGREEDY) != 0); + greedy_non_default = greedy_default ^ 1; + req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0; + } previous = NULL; /* This item can't be repeated */ continue; /* It is complete */ @@ -3136,58 +4172,56 @@ for (;; ptr++) bravalue = OP_BRA; ptr++; - } - } + } /* End of switch for character following (? */ + } /* End of (? handling */ - /* If PCRE_NO_AUTO_CAPTURE is set, all unadorned brackets become - non-capturing and behave like (?:...) brackets */ + /* Opening parenthesis not followed by '?'. If PCRE_NO_AUTO_CAPTURE is set, + all unadorned brackets become non-capturing and behave like (?:...) + brackets. */ else if ((options & PCRE_NO_AUTO_CAPTURE) != 0) { bravalue = OP_BRA; } - /* Else we have a referencing group; adjust the opcode. If the bracket - number is greater than EXTRACT_BASIC_MAX, we set the opcode one higher, and - arrange for the true number to follow later, in an OP_BRANUMBER item. */ + /* Else we have a capturing group. */ else { NUMBERED_GROUP: - if (++(*brackets) > EXTRACT_BASIC_MAX) - { - bravalue = OP_BRA + EXTRACT_BASIC_MAX + 1; - code[1+LINK_SIZE] = OP_BRANUMBER; - PUT2(code, 2+LINK_SIZE, *brackets); - skipbytes = 3; - } - else bravalue = OP_BRA + *brackets; + cd->bracount += 1; + PUT2(code, 1+LINK_SIZE, cd->bracount); + skipbytes = 2; } - /* Process nested bracketed re. Assertions may not be repeated, but other - kinds can be. We copy code into a non-register variable in order to be able - to pass its address because some compilers complain otherwise. Pass in a - new setting for the ims options if they have changed. */ + /* Process nested bracketed regex. Assertions may not be repeated, but + other kinds can be. All their opcodes are >= OP_ONCE. We copy code into a + non-register variable in order to be able to pass its address because some + compilers complain otherwise. Pass in a new setting for the ims options if + they have changed. */ previous = (bravalue >= OP_ONCE)? code : NULL; *code = bravalue; tempcode = code; tempreqvary = cd->req_varyopt; /* Save value before bracket */ + length_prevgroup = 0; /* Initialize for pre-compile phase */ if (!compile_regex( newoptions, /* The complete new option state */ options & PCRE_IMS, /* The previous ims option state */ - brackets, /* Extracting bracket count */ &tempcode, /* Where to put code (updated) */ &ptr, /* Input pointer (updated) */ errorcodeptr, /* Where to put an error message */ (bravalue == OP_ASSERTBACK || bravalue == OP_ASSERTBACK_NOT), /* TRUE if back assert */ - skipbytes, /* Skip over OP_COND/OP_BRANUMBER */ + skipbytes, /* Skip over bracket number */ &subfirstbyte, /* For possible first char */ &subreqbyte, /* For possible last char */ bcptr, /* Current branch chain */ - cd)) /* Tables block */ + cd, /* Tables block */ + (lengthptr == NULL)? NULL : /* Actual compile phase */ + &length_prevgroup /* Pre-compile phase */ + )) goto FAILED; /* At the end of compiling, code is still pointing to the start of the @@ -3196,12 +4230,12 @@ for (;; ptr++) is on the bracket. */ /* If this is a conditional bracket, check that there are no more than - two branches in the group. */ + two branches in the group, or just one if it's a DEFINE group. */ - else if (bravalue == OP_COND) + if (bravalue == OP_COND) { uschar *tc = code; - condcount = 0; + int condcount = 0; do { condcount++; @@ -3209,29 +4243,77 @@ for (;; ptr++) } while (*tc != OP_KET); - if (condcount > 2) + /* A DEFINE group is never obeyed inline (the "condition" is always + false). It must have only one branch. */ + + if (code[LINK_SIZE+1] == OP_DEF) { - *errorcodeptr = ERR27; - goto FAILED; + if (condcount > 1) + { + *errorcodeptr = ERR54; + goto FAILED; + } + bravalue = OP_DEF; /* Just a flag to suppress char handling below */ + } + + /* A "normal" conditional group. If there is just one branch, we must not + make use of its firstbyte or reqbyte, because this is equivalent to an + empty second branch. */ + + else + { + if (condcount > 2) + { + *errorcodeptr = ERR27; + goto FAILED; + } + if (condcount == 1) subfirstbyte = subreqbyte = REQ_NONE; } + } + + /* Error if hit end of pattern */ - /* If there is just one branch, we must not make use of its firstbyte or - reqbyte, because this is equivalent to an empty second branch. */ + if (*ptr != ')') + { + *errorcodeptr = ERR14; + goto FAILED; + } - if (condcount == 1) subfirstbyte = subreqbyte = REQ_NONE; + /* In the pre-compile phase, update the length by the length of the nested + group, less the brackets at either end. Then reduce the compiled code to + just the brackets so that it doesn't use much memory if it is duplicated by + a quantifier. */ + + if (lengthptr != NULL) + { + *lengthptr += length_prevgroup - 2 - 2*LINK_SIZE; + code++; + PUTINC(code, 0, 1 + LINK_SIZE); + *code++ = OP_KET; + PUTINC(code, 0, 1 + LINK_SIZE); } - /* Handle updating of the required and first characters. Update for normal - brackets of all kinds, and conditions with two branches (see code above). - If the bracket is followed by a quantifier with zero repeat, we have to - back off. Hence the definition of zeroreqbyte and zerofirstbyte outside the - main loop so that they can be accessed for the back off. */ + /* Otherwise update the main code pointer to the end of the group. */ + + else code = tempcode; + + /* For a DEFINE group, required and first character settings are not + relevant. */ + + if (bravalue == OP_DEF) break; + + /* Handle updating of the required and first characters for other types of + group. Update for normal brackets of all kinds, and conditions with two + branches (see code above). If the bracket is followed by a quantifier with + zero repeat, we have to back off. Hence the definition of zeroreqbyte and + zerofirstbyte outside the main loop so that they can be accessed for the + back off. */ zeroreqbyte = reqbyte; zerofirstbyte = firstbyte; groupsetfirstbyte = FALSE; - if (bravalue >= OP_BRA || bravalue == OP_ONCE || bravalue == OP_COND) + if (bravalue >= OP_ONCE) { /* If we have not yet set a firstbyte in this branch, take it from the subpattern, remembering that it was set here so that a repeat of more @@ -3272,35 +4354,22 @@ for (;; ptr++) firstbyte, looking for an asserted first char. */ else if (bravalue == OP_ASSERT && subreqbyte >= 0) reqbyte = subreqbyte; + break; /* End of processing '(' */ - /* Now update the main code pointer to the end of the group. */ - - code = tempcode; - - /* Error if hit end of pattern */ - - if (*ptr != ')') - { - *errorcodeptr = ERR14; - goto FAILED; - } - break; - - /* Check \ for being a real metacharacter; if not, fall through and handle - it as a data character at the start of a string. Escape items are checked - for validity in the pre-compiling pass. */ - case '\\': - tempptr = ptr; - c = check_escape(&ptr, errorcodeptr, *brackets, options, FALSE); - - /* Handle metacharacters introduced by \. For ones like \d, the ESC_ values + /* ===================================================================*/ + /* Handle metasequences introduced by \. For ones like \d, the ESC_ values are arranged to be the negation of the corresponding OP_values. For the back references, the values are ESC_REF plus the reference number. Only back references and those types that consume a character may be repeated. We can test for values between ESC_b and ESC_Z for the latter; this may have to change if any new ones are ever created. */ + case '\\': + tempptr = ptr; + c = check_escape(&ptr, errorcodeptr, cd->bracount, options, FALSE); + if (*errorcodeptr != 0) goto FAILED; + if (c < 0) { if (-c == ESC_Q) /* Handle start of quoted string */ @@ -3310,6 +4379,8 @@ for (;; ptr++) continue; } + if (-c == ESC_E) continue; /* Perl ignores an orphan \E */ + /* For metasequences that actually match a character, we disable the setting of a first character if it hasn't already been set. */ @@ -3321,18 +4392,33 @@ for (;; ptr++) zerofirstbyte = firstbyte; zeroreqbyte = reqbyte; - /* Back references are handled specially */ + /* \k or \k'name' is a back reference by name (Perl syntax) */ + + if (-c == ESC_k && (ptr[1] == '<' || ptr[1] == '\'')) + { + is_recurse = FALSE; + terminator = (*(++ptr) == '<')? '>' : '\''; + goto NAMED_REF_OR_RECURSE; + } + + /* Back references are handled specially; must disable firstbyte if + not set to cope with cases like (?=(\w+))\1: which would otherwise set + ':' later. */ if (-c >= ESC_REF) { - int number = -c - ESC_REF; + recno = -c - ESC_REF; + + HANDLE_REFERENCE: /* Come here from named backref handling */ + if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; previous = code; *code++ = OP_REF; - PUT2INC(code, 0, number); + PUT2INC(code, 0, recno); + cd->backref_map |= (recno < 32)? (1 << recno) : 1; + if (recno > cd->top_backref) cd->top_backref = recno; } - /* So are Unicode property matches, if supported. We know that get_ucp - won't fail because it was tested in the pre-pass. */ + /* So are Unicode property matches, if supported. */ #ifdef SUPPORT_UCP else if (-c == ESC_P || -c == ESC_p) @@ -3340,15 +4426,26 @@ for (;; ptr++) BOOL negated; int pdata; int ptype = get_ucp(&ptr, &negated, &pdata, errorcodeptr); + if (ptype < 0) goto FAILED; previous = code; *code++ = ((-c == ESC_p) != negated)? OP_PROP : OP_NOTPROP; *code++ = ptype; *code++ = pdata; } +#else + + /* If Unicode properties are not supported, \X, \P, and \p are not + allowed. */ + + else if (-c == ESC_X || -c == ESC_P || -c == ESC_p) + { + *errorcodeptr = ERR45; + goto FAILED; + } #endif - /* For the rest, we can obtain the OP value by negating the escape - value */ + /* For the rest (including \X when Unicode properties are supported), we + can obtain the OP value by negating the escape value. */ else { @@ -3372,9 +4469,10 @@ for (;; ptr++) mcbuffer[0] = c; mclength = 1; } - goto ONE_CHAR; + + /* ===================================================================*/ /* Handle a literal character. It is guaranteed not to be whitespace or # when the extended flag is set. If we are in UTF-8 mode, it may be a multi-byte literal character. */ @@ -3385,7 +4483,7 @@ for (;; ptr++) mcbuffer[0] = c; #ifdef SUPPORT_UTF8 - if (utf8 && (c & 0xc0) == 0xc0) + if (utf8 && c >= 0xc0) { while ((ptr[1] & 0xc0) == 0x80) mcbuffer[mclength++] = *(++ptr); @@ -3436,6 +4534,7 @@ for (;; ptr++) } } /* end of big loop */ + /* Control never reaches here by falling through, only by a goto for all the error states. Pass back the position in the pattern so that it can be displayed to the user for diagnosing the error. */ @@ -3452,35 +4551,40 @@ return FALSE; * Compile sequence of alternatives * *************************************************/ -/* On entry, ptr is pointing past the bracket character, but on return -it points to the closing bracket, or vertical bar, or end of string. -The code variable is pointing at the byte into which the BRA operator has been -stored. If the ims options are changed at the start (for a (?ims: group) or -during any branch, we need to insert an OP_OPT item at the start of every -following branch to ensure they get set correctly at run time, and also pass -the new options into every subsequent branch compile. +/* On entry, ptr is pointing past the bracket character, but on return it +points to the closing bracket, or vertical bar, or end of string. The code +variable is pointing at the byte into which the BRA operator has been stored. +If the ims options are changed at the start (for a (?ims: group) or during any +branch, we need to insert an OP_OPT item at the start of every following branch +to ensure they get set correctly at run time, and also pass the new options +into every subsequent branch compile. + +This function is used during the pre-compile phase when we are trying to find +out the amount of memory needed, as well as during the real compile phase. The +value of lengthptr distinguishes the two phases. Argument: options option bits, including any changes for this subpattern oldims previous settings of ims option bits - brackets -> int containing the number of extracting brackets used codeptr -> the address of the current code pointer ptrptr -> the address of the current pattern pointer errorcodeptr -> pointer to error code variable lookbehind TRUE if this is a lookbehind assertion - skipbytes skip this many bytes at start (for OP_COND, OP_BRANUMBER) + skipbytes skip this many bytes at start (for brackets and OP_COND) firstbyteptr place to put the first required character, or a negative number reqbyteptr place to put the last required character, or a negative number bcptr pointer to the chain of currently open branches cd points to the data block with tables pointers etc. + lengthptr NULL during the real compile phase + points to length accumulator during pre-compile phase -Returns: TRUE on success +Returns: TRUE on success */ static BOOL -compile_regex(int options, int oldims, int *brackets, uschar **codeptr, - const uschar **ptrptr, int *errorcodeptr, BOOL lookbehind, int skipbytes, - int *firstbyteptr, int *reqbyteptr, branch_chain *bcptr, compile_data *cd) +compile_regex(int options, int oldims, uschar **codeptr, const uschar **ptrptr, + int *errorcodeptr, BOOL lookbehind, int skipbytes, int *firstbyteptr, + int *reqbyteptr, branch_chain *bcptr, compile_data *cd, int *lengthptr) { const uschar *ptr = *ptrptr; uschar *code = *codeptr; @@ -3489,6 +4593,7 @@ uschar *start_bracket = code; uschar *reverse_count = NULL; int firstbyte, reqbyte; int branchfirstbyte, branchreqbyte; +int length; branch_chain bc; bc.outer = bcptr; @@ -3496,6 +4601,20 @@ bc.current = code; firstbyte = reqbyte = REQ_UNSET; +/* Accumulate the length for use in the pre-compile phase. Start with the +length of the BRA and KET and any extra bytes that are required at the +beginning. We accumulate in a local variable to save frequent testing of +lenthptr for NULL. We cannot do this by looking at the value of code at the +start and end of each alternative, because compiled items are discarded during +the pre-compile phase so that the work space is not exceeded. */ + +length = 2 + 2*LINK_SIZE + skipbytes; + +/* WARNING: If the above line is changed for any reason, you must also change +the code that abstracts option settings at the start of the pattern and makes +them global. It tests the value of length for (2 + 2*LINK_SIZE) in the +pre-compile phase to find out whether anything has yet been compiled or not. */ + /* Offset is set zero to mark that this bracket is still open */ PUT(code, 1, 0); @@ -3511,6 +4630,7 @@ for (;;) { *code++ = OP_OPT; *code++ = options & PCRE_IMS; + length += 2; } /* Set up dummy OP_REVERSE if lookbehind assertion */ @@ -3520,73 +4640,80 @@ for (;;) *code++ = OP_REVERSE; reverse_count = code; PUTINC(code, 0, 0); + length += 1 + LINK_SIZE; } - /* Now compile the branch */ + /* Now compile the branch; in the pre-compile phase its length gets added + into the length. */ - if (!compile_branch(&options, brackets, &code, &ptr, errorcodeptr, - &branchfirstbyte, &branchreqbyte, &bc, cd)) + if (!compile_branch(&options, &code, &ptr, errorcodeptr, &branchfirstbyte, + &branchreqbyte, &bc, cd, (lengthptr == NULL)? NULL : &length)) { *ptrptr = ptr; return FALSE; } - /* If this is the first branch, the firstbyte and reqbyte values for the - branch become the values for the regex. */ + /* In the real compile phase, there is some post-processing to be done. */ - if (*last_branch != OP_ALT) + if (lengthptr == NULL) { - firstbyte = branchfirstbyte; - reqbyte = branchreqbyte; - } + /* If this is the first branch, the firstbyte and reqbyte values for the + branch become the values for the regex. */ - /* If this is not the first branch, the first char and reqbyte have to - match the values from all the previous branches, except that if the previous - value for reqbyte didn't have REQ_VARY set, it can still match, and we set - REQ_VARY for the regex. */ + if (*last_branch != OP_ALT) + { + firstbyte = branchfirstbyte; + reqbyte = branchreqbyte; + } - else - { - /* If we previously had a firstbyte, but it doesn't match the new branch, - we have to abandon the firstbyte for the regex, but if there was previously - no reqbyte, it takes on the value of the old firstbyte. */ + /* If this is not the first branch, the first char and reqbyte have to + match the values from all the previous branches, except that if the + previous value for reqbyte didn't have REQ_VARY set, it can still match, + and we set REQ_VARY for the regex. */ - if (firstbyte >= 0 && firstbyte != branchfirstbyte) + else { - if (reqbyte < 0) reqbyte = firstbyte; - firstbyte = REQ_NONE; - } + /* If we previously had a firstbyte, but it doesn't match the new branch, + we have to abandon the firstbyte for the regex, but if there was + previously no reqbyte, it takes on the value of the old firstbyte. */ - /* If we (now or from before) have no firstbyte, a firstbyte from the - branch becomes a reqbyte if there isn't a branch reqbyte. */ + if (firstbyte >= 0 && firstbyte != branchfirstbyte) + { + if (reqbyte < 0) reqbyte = firstbyte; + firstbyte = REQ_NONE; + } - if (firstbyte < 0 && branchfirstbyte >= 0 && branchreqbyte < 0) - branchreqbyte = branchfirstbyte; + /* If we (now or from before) have no firstbyte, a firstbyte from the + branch becomes a reqbyte if there isn't a branch reqbyte. */ - /* Now ensure that the reqbytes match */ + if (firstbyte < 0 && branchfirstbyte >= 0 && branchreqbyte < 0) + branchreqbyte = branchfirstbyte; - if ((reqbyte & ~REQ_VARY) != (branchreqbyte & ~REQ_VARY)) - reqbyte = REQ_NONE; - else reqbyte |= branchreqbyte; /* To "or" REQ_VARY */ - } + /* Now ensure that the reqbytes match */ - /* If lookbehind, check that this branch matches a fixed-length string, - and put the length into the OP_REVERSE item. Temporarily mark the end of - the branch with OP_END. */ + if ((reqbyte & ~REQ_VARY) != (branchreqbyte & ~REQ_VARY)) + reqbyte = REQ_NONE; + else reqbyte |= branchreqbyte; /* To "or" REQ_VARY */ + } - if (lookbehind) - { - int length; - *code = OP_END; - length = find_fixedlength(last_branch, options); - DPRINTF(("fixed length = %d\n", length)); - if (length < 0) + /* If lookbehind, check that this branch matches a fixed-length string, and + put the length into the OP_REVERSE item. Temporarily mark the end of the + branch with OP_END. */ + + if (lookbehind) { - *errorcodeptr = (length == -2)? ERR36 : ERR25; - *ptrptr = ptr; - return FALSE; + int fixed_length; + *code = OP_END; + fixed_length = find_fixedlength(last_branch, options); + DPRINTF(("fixed length = %d\n", fixed_length)); + if (fixed_length < 0) + { + *errorcodeptr = (fixed_length == -2)? ERR36 : ERR25; + *ptrptr = ptr; + return FALSE; + } + PUT(reverse_count, 0, fixed_length); } - PUT(reverse_count, 0, length); } /* Reached end of expression, either ')' or end of pattern. Go back through @@ -3600,15 +4727,15 @@ for (;;) if (*ptr != '|') { - int length = code - last_branch; + int branch_length = code - last_branch; do { int prev_length = GET(last_branch, 1); - PUT(last_branch, 1, length); - length = prev_length; - last_branch -= length; + PUT(last_branch, 1, branch_length); + branch_length = prev_length; + last_branch -= branch_length; } - while (length > 0); + while (branch_length > 0); /* Fill in the ket */ @@ -3622,6 +4749,7 @@ for (;;) { *code++ = OP_OPT; *code++ = oldims; + length += 2; } /* Set values to pass back */ @@ -3630,6 +4758,7 @@ for (;;) *ptrptr = ptr; *firstbyteptr = firstbyte; *reqbyteptr = reqbyte; + if (lengthptr != NULL) *lengthptr += length; return TRUE; } @@ -3643,6 +4772,7 @@ for (;;) bc.current = last_branch = code; code += 1 + LINK_SIZE; ptr++; + length += 1 + LINK_SIZE; } /* Control never reaches here */ } @@ -3693,24 +4823,29 @@ is_anchored(register const uschar *code, unsigned int backref_map) { do { - const uschar *scode = - first_significant_code(code + 1+LINK_SIZE, options, PCRE_MULTILINE, FALSE); + const uschar *scode = first_significant_code(code + _pcre_OP_lengths[*code], + options, PCRE_MULTILINE, FALSE); register int op = *scode; + /* Non-capturing brackets */ + + if (op == OP_BRA) + { + if (!is_anchored(scode, options, bracket_map, backref_map)) return FALSE; + } + /* Capturing brackets */ - if (op > OP_BRA) + else if (op == OP_CBRA) { - int new_map; - op -= OP_BRA; - if (op > EXTRACT_BASIC_MAX) op = GET2(scode, 2+LINK_SIZE); - new_map = bracket_map | ((op < 32)? (1 << op) : 1); + int n = GET2(scode, 1+LINK_SIZE); + int new_map = bracket_map | ((n < 32)? (1 << n) : 1); if (!is_anchored(scode, options, new_map, backref_map)) return FALSE; } /* Other brackets */ - else if (op == OP_BRA || op == OP_ASSERT || op == OP_ONCE || op == OP_COND) + else if (op == OP_ASSERT || op == OP_ONCE || op == OP_COND) { if (!is_anchored(scode, options, bracket_map, backref_map)) return FALSE; } @@ -3718,7 +4853,8 @@ do { /* .* is not anchored unless DOTALL is set and it isn't in brackets that are or may be referenced. */ - else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR) && + else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR || + op == OP_TYPEPOSSTAR) && (*options & PCRE_DOTALL) != 0) { if (scode[1] != OP_ANY || (bracket_map & backref_map) != 0) return FALSE; @@ -3763,30 +4899,35 @@ is_startline(const uschar *code, unsigne unsigned int backref_map) { do { - const uschar *scode = first_significant_code(code + 1+LINK_SIZE, NULL, 0, - FALSE); + const uschar *scode = first_significant_code(code + _pcre_OP_lengths[*code], + NULL, 0, FALSE); register int op = *scode; + /* Non-capturing brackets */ + + if (op == OP_BRA) + { + if (!is_startline(scode, bracket_map, backref_map)) return FALSE; + } + /* Capturing brackets */ - if (op > OP_BRA) + else if (op == OP_CBRA) { - int new_map; - op -= OP_BRA; - if (op > EXTRACT_BASIC_MAX) op = GET2(scode, 2+LINK_SIZE); - new_map = bracket_map | ((op < 32)? (1 << op) : 1); + int n = GET2(scode, 1+LINK_SIZE); + int new_map = bracket_map | ((n < 32)? (1 << n) : 1); if (!is_startline(scode, new_map, backref_map)) return FALSE; } /* Other brackets */ - else if (op == OP_BRA || op == OP_ASSERT || op == OP_ONCE || op == OP_COND) + else if (op == OP_ASSERT || op == OP_ONCE || op == OP_COND) { if (!is_startline(scode, bracket_map, backref_map)) return FALSE; } /* .* means "start at start or after \n" if it isn't in brackets that may be referenced. */ - else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR) + else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR) { if (scode[1] != OP_ANY || (bracket_map & backref_map) != 0) return FALSE; } @@ -3835,14 +4976,13 @@ do { first_significant_code(code + 1+LINK_SIZE, options, PCRE_CASELESS, TRUE); register int op = *scode; - if (op >= OP_BRA) op = OP_BRA; - switch(op) { default: return -1; case OP_BRA: + case OP_CBRA: case OP_ASSERT: case OP_ONCE: case OP_COND: @@ -3858,6 +4998,7 @@ do { case OP_CHARNC: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: if (!inassert) return -1; if (c < 0) { @@ -3911,30 +5052,31 @@ pcre_compile2(const char *pattern, int o const char **errorptr, int *erroroffset, const unsigned char *tables) { real_pcre *re; -int length = 1 + LINK_SIZE; /* For initial BRA plus length */ -int c, firstbyte, reqbyte; -int bracount = 0; -int branch_extra = 0; -int branch_newextra; -int item_count = -1; -int name_count = 0; -int max_name_size = 0; -int lastitemlength = 0; +int length = 1; /* For final END opcode */ +int firstbyte, reqbyte, newline; int errorcode = 0; #ifdef SUPPORT_UTF8 BOOL utf8; -BOOL class_utf8; #endif -BOOL inescq = FALSE; -BOOL capturing; -unsigned int brastackptr = 0; size_t size; uschar *code; const uschar *codestart; const uschar *ptr; compile_data compile_block; -int brastack[BRASTACK_SIZE]; -uschar bralenstack[BRASTACK_SIZE]; +compile_data *cd = &compile_block; + +/* This space is used for "compiling" into during the first phase, when we are +computing the amount of memory that is needed. Compiled items are thrown away +as soon as possible, so that a fairly large buffer should be sufficient for +this purpose. The same space is used in the second phase for remembering where +to fill in forward references to subpatterns. */ + +uschar cworkspace[COMPILE_WORK_SIZE]; + + +/* Set this early so that early errors get offset 0. */ + +ptr = (const uschar *)pattern; /* We can't pass back an error message if errorptr is NULL; I guess the best we can do is just return NULL, but we can set a code value if there is a code @@ -3967,7 +5109,7 @@ if (utf8 && (options & PCRE_NO_UTF8_CHEC (*erroroffset = _pcre_valid_utf8((uschar *)pattern, -1)) >= 0) { errorcode = ERR44; - goto PCRE_EARLY_ERROR_RETURN; + goto PCRE_UTF8_ERROR_RETURN; } #else if ((options & PCRE_UTF8) != 0) @@ -3986,991 +5128,145 @@ if ((options & ~PUBLIC_OPTIONS) != 0) /* Set up pointers to the individual character tables */ if (tables == NULL) tables = _pcre_default_tables; -compile_block.lcc = tables + lcc_offset; -compile_block.fcc = tables + fcc_offset; -compile_block.cbits = tables + cbits_offset; -compile_block.ctypes = tables + ctypes_offset; - -/* Maximum back reference and backref bitmap. This is updated for numeric -references during the first pass, but for named references during the actual -compile pass. The bitmap records up to 31 back references to help in deciding -whether (.*) can be treated as anchored or not. */ +cd->lcc = tables + lcc_offset; +cd->fcc = tables + fcc_offset; +cd->cbits = tables + cbits_offset; +cd->ctypes = tables + ctypes_offset; -compile_block.top_backref = 0; -compile_block.backref_map = 0; +/* Handle different types of newline. The three bits give seven cases. The +current code allows for fixed one- or two-byte sequences, plus "any". */ -/* Reflect pattern for debugging output */ - -DPRINTF(("------------------------------------------------------------------\n")); -DPRINTF(("%s\n", pattern)); - -/* The first thing to do is to make a pass over the pattern to compute the -amount of store required to hold the compiled code. This does not have to be -perfect as long as errors are overestimates. At the same time we can detect any -flag settings right at the start, and extract them. Make an attempt to correct -for any counted white space if an "extended" flag setting appears late in the -pattern. We can't be so clever for #-comments. */ - -ptr = (const uschar *)(pattern - 1); -while ((c = *(++ptr)) != 0) - { - int min, max; - int class_optcount; - int bracket_length; - int duplength; - - /* If we are inside a \Q...\E sequence, all chars are literal */ +switch (options & (PCRE_NEWLINE_CRLF | PCRE_NEWLINE_ANY)) + { + case 0: newline = NEWLINE; break; /* Compile-time default */ + case PCRE_NEWLINE_CR: newline = '\r'; break; + case PCRE_NEWLINE_LF: newline = '\n'; break; + case PCRE_NEWLINE_CR+ + PCRE_NEWLINE_LF: newline = ('\r' << 8) | '\n'; break; + case PCRE_NEWLINE_ANY: newline = -1; break; + default: errorcode = ERR56; goto PCRE_EARLY_ERROR_RETURN; + } - if (inescq) +if (newline < 0) + { + cd->nltype = NLTYPE_ANY; + } +else + { + cd->nltype = NLTYPE_FIXED; + if (newline > 255) { - if ((options & PCRE_AUTO_CALLOUT) != 0) length += 2 + 2*LINK_SIZE; - goto NORMAL_CHAR; + cd->nllen = 2; + cd->nl[0] = (newline >> 8) & 255; + cd->nl[1] = newline & 255; } - - /* Otherwise, first check for ignored whitespace and comments */ - - if ((options & PCRE_EXTENDED) != 0) + else { - if ((compile_block.ctypes[c] & ctype_space) != 0) continue; - if (c == '#') - { - /* The space before the ; is to avoid a warning on a silly compiler - on the Macintosh. */ - while ((c = *(++ptr)) != 0 && c != NEWLINE) ; - if (c == 0) break; - continue; - } + cd->nllen = 1; + cd->nl[0] = newline; } + } - item_count++; /* Is zero for the first non-comment item */ - - /* Allow space for auto callout before every item except quantifiers. */ +/* Maximum back reference and backref bitmap. The bitmap records up to 31 back +references to help in deciding whether (.*) can be treated as anchored or not. +*/ - if ((options & PCRE_AUTO_CALLOUT) != 0 && - c != '*' && c != '+' && c != '?' && - (c != '{' || !is_counted_repeat(ptr + 1))) - length += 2 + 2*LINK_SIZE; +cd->top_backref = 0; +cd->backref_map = 0; - switch(c) - { - /* A backslashed item may be an escaped data character or it may be a - character type. */ +/* Reflect pattern for debugging output */ - case '\\': - c = check_escape(&ptr, &errorcode, bracount, options, FALSE); - if (errorcode != 0) goto PCRE_ERROR_RETURN; +DPRINTF(("------------------------------------------------------------------\n")); +DPRINTF(("%s\n", pattern)); - lastitemlength = 1; /* Default length of last item for repeats */ +/* Pretend to compile the pattern while actually just accumulating the length +of memory required. This behaviour is triggered by passing a non-NULL final +argument to compile_regex(). We pass a block of workspace (cworkspace) for it +to compile parts of the pattern into; the compiled code is discarded when it is +no longer needed, so hopefully this workspace will never overflow, though there +is a test for its doing so. */ + +cd->bracount = 0; +cd->names_found = 0; +cd->name_entry_size = 0; +cd->name_table = NULL; +cd->start_workspace = cworkspace; +cd->start_code = cworkspace; +cd->hwm = cworkspace; +cd->start_pattern = (const uschar *)pattern; +cd->end_pattern = (const uschar *)(pattern + strlen(pattern)); +cd->req_varyopt = 0; +cd->nopartial = FALSE; +cd->external_options = options; + +/* Now do the pre-compile. On error, errorcode will be set non-zero, so we +don't need to look at the result of the function here. The initial options have +been put into the cd block so that they can be changed if an option setting is +found within the regex right at the beginning. Bringing initial option settings +outside can help speed up starting point checks. */ - if (c >= 0) /* Data character */ - { - length += 2; /* For a one-byte character */ +code = cworkspace; +*code = OP_BRA; +(void)compile_regex(cd->external_options, cd->external_options & PCRE_IMS, + &code, &ptr, &errorcode, FALSE, 0, &firstbyte, &reqbyte, NULL, cd, &length); +if (errorcode != 0) goto PCRE_EARLY_ERROR_RETURN; -#ifdef SUPPORT_UTF8 - if (utf8 && c > 127) - { - int i; - for (i = 0; i < _pcre_utf8_table1_size; i++) - if (c <= _pcre_utf8_table1[i]) break; - length += i; - lastitemlength += i; - } -#endif +DPRINTF(("end pre-compile: length=%d workspace=%d\n", length, + cd->hwm - cworkspace)); - continue; - } +if (length > MAX_PATTERN_SIZE) + { + errorcode = ERR20; + goto PCRE_EARLY_ERROR_RETURN; + } - /* If \Q, enter "literal" mode */ +/* Compute the size of data block needed and get it, either from malloc or +externally provided function. Integer overflow should no longer be possible +because nowadays we limit the maximum value of cd->names_found and +cd->name_entry_size. */ - if (-c == ESC_Q) - { - inescq = TRUE; - continue; - } +size = length + sizeof(real_pcre) + cd->names_found * (cd->name_entry_size + 3); +re = (real_pcre *)(pcre_malloc)(size); - /* \X is supported only if Unicode property support is compiled */ +if (re == NULL) + { + errorcode = ERR21; + goto PCRE_EARLY_ERROR_RETURN; + } -#ifndef SUPPORT_UCP - if (-c == ESC_X) - { - errorcode = ERR45; - goto PCRE_ERROR_RETURN; - } -#endif - - /* \P and \p are for Unicode properties, but only when the support has - been compiled. Each item needs 3 bytes. */ - - else if (-c == ESC_P || -c == ESC_p) - { -#ifdef SUPPORT_UCP - BOOL negated; - BOOL pdata; - length += 3; - lastitemlength = 3; - if (get_ucp(&ptr, &negated, &pdata, &errorcode) < 0) - goto PCRE_ERROR_RETURN; - continue; -#else - errorcode = ERR45; - goto PCRE_ERROR_RETURN; -#endif - } - - /* Other escapes need one byte */ - - length++; - - /* A back reference needs an additional 2 bytes, plus either one or 5 - bytes for a repeat. We also need to keep the value of the highest - back reference. */ - - if (c <= -ESC_REF) - { - int refnum = -c - ESC_REF; - compile_block.backref_map |= (refnum < 32)? (1 << refnum) : 1; - if (refnum > compile_block.top_backref) - compile_block.top_backref = refnum; - length += 2; /* For single back reference */ - if (ptr[1] == '{' && is_counted_repeat(ptr+2)) - { - ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - if ((min == 0 && (max == 1 || max == -1)) || - (min == 1 && max == -1)) - length++; - else length += 5; - if (ptr[1] == '?') ptr++; - } - } - continue; - - case '^': /* Single-byte metacharacters */ - case '.': - case '$': - length++; - lastitemlength = 1; - continue; - - case '*': /* These repeats won't be after brackets; */ - case '+': /* those are handled separately */ - case '?': - length++; - goto POSESSIVE; /* A few lines below */ - - /* This covers the cases of braced repeats after a single char, metachar, - class, or back reference. */ - - case '{': - if (!is_counted_repeat(ptr+1)) goto NORMAL_CHAR; - ptr = read_repeat_counts(ptr+1, &min, &max, &errorcode); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - - /* These special cases just insert one extra opcode */ - - if ((min == 0 && (max == 1 || max == -1)) || - (min == 1 && max == -1)) - length++; - - /* These cases might insert additional copies of a preceding character. */ - - else - { - if (min != 1) - { - length -= lastitemlength; /* Uncount the original char or metachar */ - if (min > 0) length += 3 + lastitemlength; - } - length += lastitemlength + ((max > 0)? 3 : 1); - } - - if (ptr[1] == '?') ptr++; /* Needs no extra length */ - - POSESSIVE: /* Test for possessive quantifier */ - if (ptr[1] == '+') - { - ptr++; - length += 2 + 2*LINK_SIZE; /* Allow for atomic brackets */ - } - continue; - - /* An alternation contains an offset to the next branch or ket. If any ims - options changed in the previous branch(es), and/or if we are in a - lookbehind assertion, extra space will be needed at the start of the - branch. This is handled by branch_extra. */ - - case '|': - length += 1 + LINK_SIZE + branch_extra; - continue; - - /* A character class uses 33 characters provided that all the character - values are less than 256. Otherwise, it uses a bit map for low valued - characters, and individual items for others. Don't worry about character - types that aren't allowed in classes - they'll get picked up during the - compile. A character class that contains only one single-byte character - uses 2 or 3 bytes, depending on whether it is negated or not. Notice this - where we can. (In UTF-8 mode we can do this only for chars < 128.) */ - - case '[': - if (*(++ptr) == '^') - { - class_optcount = 10; /* Greater than one */ - ptr++; - } - else class_optcount = 0; - -#ifdef SUPPORT_UTF8 - class_utf8 = FALSE; -#endif - - /* Written as a "do" so that an initial ']' is taken as data */ - - if (*ptr != 0) do - { - /* Inside \Q...\E everything is literal except \E */ - - if (inescq) - { - if (*ptr != '\\' || ptr[1] != 'E') goto GET_ONE_CHARACTER; - inescq = FALSE; - ptr += 1; - continue; - } - - /* Outside \Q...\E, check for escapes */ - - if (*ptr == '\\') - { - c = check_escape(&ptr, &errorcode, bracount, options, TRUE); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - - /* \b is backspace inside a class; \X is literal */ - - if (-c == ESC_b) c = '\b'; - else if (-c == ESC_X) c = 'X'; - - /* \Q enters quoting mode */ - - else if (-c == ESC_Q) - { - inescq = TRUE; - continue; - } - - /* Handle escapes that turn into characters */ - - if (c >= 0) goto NON_SPECIAL_CHARACTER; - - /* Escapes that are meta-things. The normal ones just affect the - bit map, but Unicode properties require an XCLASS extended item. */ - - else - { - class_optcount = 10; /* \d, \s etc; make sure > 1 */ -#ifdef SUPPORT_UTF8 - if (-c == ESC_p || -c == ESC_P) - { - if (!class_utf8) - { - class_utf8 = TRUE; - length += LINK_SIZE + 2; - } - length += 3; - } -#endif - } - } - - /* Check the syntax for POSIX stuff. The bits we actually handle are - checked during the real compile phase. */ - - else if (*ptr == '[' && check_posix_syntax(ptr, &ptr, &compile_block)) - { - ptr++; - class_optcount = 10; /* Make sure > 1 */ - } - - /* Anything else increments the possible optimization count. We have to - detect ranges here so that we can compute the number of extra ranges for - caseless wide characters when UCP support is available. If there are wide - characters, we are going to have to use an XCLASS, even for single - characters. */ - - else - { - int d; - - GET_ONE_CHARACTER: - -#ifdef SUPPORT_UTF8 - if (utf8) - { - int extra = 0; - GETCHARLEN(c, ptr, extra); - ptr += extra; - } - else c = *ptr; -#else - c = *ptr; -#endif - - /* Come here from handling \ above when it escapes to a char value */ - - NON_SPECIAL_CHARACTER: - class_optcount++; - - d = -1; - if (ptr[1] == '-') - { - uschar const *hyptr = ptr++; - if (ptr[1] == '\\') - { - ptr++; - d = check_escape(&ptr, &errorcode, bracount, options, TRUE); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - if (-d == ESC_b) d = '\b'; /* backspace */ - else if (-d == ESC_X) d = 'X'; /* literal X in a class */ - } - else if (ptr[1] != 0 && ptr[1] != ']') - { - ptr++; -#ifdef SUPPORT_UTF8 - if (utf8) - { - int extra = 0; - GETCHARLEN(d, ptr, extra); - ptr += extra; - } - else -#endif - d = *ptr; - } - if (d < 0) ptr = hyptr; /* go back to hyphen as data */ - } - - /* If d >= 0 we have a range. In UTF-8 mode, if the end is > 255, or > - 127 for caseless matching, we will need to use an XCLASS. */ - - if (d >= 0) - { - class_optcount = 10; /* Ensure > 1 */ - if (d < c) - { - errorcode = ERR8; - goto PCRE_ERROR_RETURN; - } - -#ifdef SUPPORT_UTF8 - if (utf8 && (d > 255 || ((options & PCRE_CASELESS) != 0 && d > 127))) - { - uschar buffer[6]; - if (!class_utf8) /* Allow for XCLASS overhead */ - { - class_utf8 = TRUE; - length += LINK_SIZE + 2; - } - -#ifdef SUPPORT_UCP - /* If we have UCP support, find out how many extra ranges are - needed to map the other case of characters within this range. We - have to mimic the range optimization here, because extending the - range upwards might push d over a boundary that makes is use - another byte in the UTF-8 representation. */ - - if ((options & PCRE_CASELESS) != 0) - { - int occ, ocd; - int cc = c; - int origd = d; - while (get_othercase_range(&cc, origd, &occ, &ocd)) - { - if (occ >= c && ocd <= d) continue; /* Skip embedded */ - - if (occ < c && ocd >= c - 1) /* Extend the basic range */ - { /* if there is overlap, */ - c = occ; /* noting that if occ < c */ - continue; /* we can't have ocd > d */ - } /* because a subrange is */ - if (ocd > d && occ <= d + 1) /* always shorter than */ - { /* the basic range. */ - d = ocd; - continue; - } - - /* An extra item is needed */ - - length += 1 + _pcre_ord2utf8(occ, buffer) + - ((occ == ocd)? 0 : _pcre_ord2utf8(ocd, buffer)); - } - } -#endif /* SUPPORT_UCP */ - - /* The length of the (possibly extended) range */ - - length += 1 + _pcre_ord2utf8(c, buffer) + _pcre_ord2utf8(d, buffer); - } -#endif /* SUPPORT_UTF8 */ - - } - - /* We have a single character. There is nothing to be done unless we - are in UTF-8 mode. If the char is > 255, or 127 when caseless, we must - allow for an XCL_SINGLE item, doubled for caselessness if there is UCP - support. */ - - else - { -#ifdef SUPPORT_UTF8 - if (utf8 && (c > 255 || ((options & PCRE_CASELESS) != 0 && c > 127))) - { - uschar buffer[6]; - class_optcount = 10; /* Ensure > 1 */ - if (!class_utf8) /* Allow for XCLASS overhead */ - { - class_utf8 = TRUE; - length += LINK_SIZE + 2; - } -#ifdef SUPPORT_UCP - length += (((options & PCRE_CASELESS) != 0)? 2 : 1) * - (1 + _pcre_ord2utf8(c, buffer)); -#else /* SUPPORT_UCP */ - length += 1 + _pcre_ord2utf8(c, buffer); -#endif /* SUPPORT_UCP */ - } -#endif /* SUPPORT_UTF8 */ - } - } - } - while (*(++ptr) != 0 && (inescq || *ptr != ']')); /* Concludes "do" above */ - - if (*ptr == 0) /* Missing terminating ']' */ - { - errorcode = ERR6; - goto PCRE_ERROR_RETURN; - } - - /* We can optimize when there was only one optimizable character. Repeats - for positive and negated single one-byte chars are handled by the general - code. Here, we handle repeats for the class opcodes. */ - - if (class_optcount == 1) length += 3; else - { - length += 33; - - /* A repeat needs either 1 or 5 bytes. If it is a possessive quantifier, - we also need extra for wrapping the whole thing in a sub-pattern. */ - - if (*ptr != 0 && ptr[1] == '{' && is_counted_repeat(ptr+2)) - { - ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - if ((min == 0 && (max == 1 || max == -1)) || - (min == 1 && max == -1)) - length++; - else length += 5; - if (ptr[1] == '+') - { - ptr++; - length += 2 + 2*LINK_SIZE; - } - else if (ptr[1] == '?') ptr++; - } - } - continue; - - /* Brackets may be genuine groups or special things */ - - case '(': - branch_newextra = 0; - bracket_length = 1 + LINK_SIZE; - capturing = FALSE; - - /* Handle special forms of bracket, which all start (? */ - - if (ptr[1] == '?') - { - int set, unset; - int *optset; - - switch (c = ptr[2]) - { - /* Skip over comments entirely */ - case '#': - ptr += 3; - while (*ptr != 0 && *ptr != ')') ptr++; - if (*ptr == 0) - { - errorcode = ERR18; - goto PCRE_ERROR_RETURN; - } - continue; - - /* Non-referencing groups and lookaheads just move the pointer on, and - then behave like a non-special bracket, except that they don't increment - the count of extracting brackets. Ditto for the "once only" bracket, - which is in Perl from version 5.005. */ - - case ':': - case '=': - case '!': - case '>': - ptr += 2; - break; - - /* (?R) specifies a recursive call to the regex, which is an extension - to provide the facility which can be obtained by (?p{perl-code}) in - Perl 5.6. In Perl 5.8 this has become (??{perl-code}). - - From PCRE 4.00, items such as (?3) specify subroutine-like "calls" to - the appropriate numbered brackets. This includes both recursive and - non-recursive calls. (?R) is now synonymous with (?0). */ - - case 'R': - ptr++; - - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - ptr += 2; - if (c != 'R') - while ((digitab[*(++ptr)] & ctype_digit) != 0); - if (*ptr != ')') - { - errorcode = ERR29; - goto PCRE_ERROR_RETURN; - } - length += 3 + 3*LINK_SIZE; /* Allows for the automatic "once" */ - - /* If this item is quantified, it will get wrapped inside brackets so - as to use the code for quantified brackets. We jump down and use the - code that handles this for real brackets. */ - - if (ptr[1] == '+' || ptr[1] == '*' || ptr[1] == '?' || ptr[1] == '{') - { - length += 2 + 2 * LINK_SIZE; /* to make bracketed */ - duplength = 5 + 3 * LINK_SIZE; - goto HANDLE_QUANTIFIED_BRACKETS; - } - continue; - - /* (?C) is an extension which provides "callout" - to provide a bit of - the functionality of the Perl (?{...}) feature. An optional number may - follow (default is zero). */ - - case 'C': - ptr += 2; - while ((digitab[*(++ptr)] & ctype_digit) != 0); - if (*ptr != ')') - { - errorcode = ERR39; - goto PCRE_ERROR_RETURN; - } - length += 2 + 2*LINK_SIZE; - continue; - - /* Named subpatterns are an extension copied from Python */ - - case 'P': - ptr += 3; - - /* Handle the definition of a named subpattern */ - - if (*ptr == '<') - { - const uschar *p; /* Don't amalgamate; some compilers */ - p = ++ptr; /* grumble at autoincrement in declaration */ - while ((compile_block.ctypes[*ptr] & ctype_word) != 0) ptr++; - if (*ptr != '>') - { - errorcode = ERR42; - goto PCRE_ERROR_RETURN; - } - name_count++; - if (ptr - p > max_name_size) max_name_size = (ptr - p); - capturing = TRUE; /* Named parentheses are always capturing */ - break; - } - - /* Handle back references and recursive calls to named subpatterns */ - - if (*ptr == '=' || *ptr == '>') - { - length += 2 + 2*LINK_SIZE; /* Allow for the automatic "once" */ - while ((compile_block.ctypes[*(++ptr)] & ctype_word) != 0); - if (*ptr != ')') - { - errorcode = ERR42; - goto PCRE_ERROR_RETURN; - } - break; - } - - /* Unknown character after (?P */ - - errorcode = ERR41; - goto PCRE_ERROR_RETURN; - - /* Lookbehinds are in Perl from version 5.005 */ - - case '<': - ptr += 3; - if (*ptr == '=' || *ptr == '!') - { - branch_newextra = 1 + LINK_SIZE; - length += 1 + LINK_SIZE; /* For the first branch */ - break; - } - errorcode = ERR24; - goto PCRE_ERROR_RETURN; - - /* Conditionals are in Perl from version 5.005. The bracket must either - be followed by a number (for bracket reference) or by an assertion - group, or (a PCRE extension) by 'R' for a recursion test. */ - - case '(': - if (ptr[3] == 'R' && ptr[4] == ')') - { - ptr += 4; - length += 3; - } - else if ((digitab[ptr[3]] & ctype_digit) != 0) - { - ptr += 4; - length += 3; - while ((digitab[*ptr] & ctype_digit) != 0) ptr++; - if (*ptr != ')') - { - errorcode = ERR26; - goto PCRE_ERROR_RETURN; - } - } - else /* An assertion must follow */ - { - ptr++; /* Can treat like ':' as far as spacing is concerned */ - if (ptr[2] != '?' || - (ptr[3] != '=' && ptr[3] != '!' && ptr[3] != '<') ) - { - ptr += 2; /* To get right offset in message */ - errorcode = ERR28; - goto PCRE_ERROR_RETURN; - } - } - break; - - /* Else loop checking valid options until ) is met. Anything else is an - error. If we are without any brackets, i.e. at top level, the settings - act as if specified in the options, so massage the options immediately. - This is for backward compatibility with Perl 5.004. */ - - default: - set = unset = 0; - optset = &set; - ptr += 2; - - for (;; ptr++) - { - c = *ptr; - switch (c) - { - case 'i': - *optset |= PCRE_CASELESS; - continue; - - case 'm': - *optset |= PCRE_MULTILINE; - continue; - - case 's': - *optset |= PCRE_DOTALL; - continue; - - case 'x': - *optset |= PCRE_EXTENDED; - continue; - - case 'X': - *optset |= PCRE_EXTRA; - continue; - - case 'U': - *optset |= PCRE_UNGREEDY; - continue; - - case '-': - optset = &unset; - continue; - - /* A termination by ')' indicates an options-setting-only item; if - this is at the very start of the pattern (indicated by item_count - being zero), we use it to set the global options. This is helpful - when analyzing the pattern for first characters, etc. Otherwise - nothing is done here and it is handled during the compiling - process. - - We allow for more than one options setting at the start. If such - settings do not change the existing options, nothing is compiled. - However, we must leave space just in case something is compiled. - This can happen for pathological sequences such as (?i)(?-i) - because the global options will end up with -i set. The space is - small and not significant. (Before I did this there was a reported - bug with (?i)(?-i) in a machine-generated pattern.) - - [Historical note: Up to Perl 5.8, options settings at top level - were always global settings, wherever they appeared in the pattern. - That is, they were equivalent to an external setting. From 5.8 - onwards, they apply only to what follows (which is what you might - expect).] */ - - case ')': - if (item_count == 0) - { - options = (options | set) & (~unset); - set = unset = 0; /* To save length */ - item_count--; /* To allow for several */ - length += 2; - } - - /* Fall through */ - - /* A termination by ':' indicates the start of a nested group with - the given options set. This is again handled at compile time, but - we must allow for compiled space if any of the ims options are - set. We also have to allow for resetting space at the end of - the group, which is why 4 is added to the length and not just 2. - If there are several changes of options within the same group, this - will lead to an over-estimate on the length, but this shouldn't - matter very much. We also have to allow for resetting options at - the start of any alternations, which we do by setting - branch_newextra to 2. Finally, we record whether the case-dependent - flag ever changes within the regex. This is used by the "required - character" code. */ - - case ':': - if (((set|unset) & PCRE_IMS) != 0) - { - length += 4; - branch_newextra = 2; - if (((set|unset) & PCRE_CASELESS) != 0) options |= PCRE_ICHANGED; - } - goto END_OPTIONS; - - /* Unrecognized option character */ - - default: - errorcode = ERR12; - goto PCRE_ERROR_RETURN; - } - } - - /* If we hit a closing bracket, that's it - this is a freestanding - option-setting. We need to ensure that branch_extra is updated if - necessary. The only values branch_newextra can have here are 0 or 2. - If the value is 2, then branch_extra must either be 2 or 5, depending - on whether this is a lookbehind group or not. */ - - END_OPTIONS: - if (c == ')') - { - if (branch_newextra == 2 && - (branch_extra == 0 || branch_extra == 1+LINK_SIZE)) - branch_extra += branch_newextra; - continue; - } - - /* If options were terminated by ':' control comes here. This is a - non-capturing group with an options change. There is nothing more that - needs to be done because "capturing" is already set FALSE by default; - we can just fall through. */ - - } - } - - /* Ordinary parentheses, not followed by '?', are capturing unless - PCRE_NO_AUTO_CAPTURE is set. */ - - else capturing = (options & PCRE_NO_AUTO_CAPTURE) == 0; - - /* Capturing brackets must be counted so we can process escapes in a - Perlish way. If the number exceeds EXTRACT_BASIC_MAX we are going to need - an additional 3 bytes of memory per capturing bracket. */ - - if (capturing) - { - bracount++; - if (bracount > EXTRACT_BASIC_MAX) bracket_length += 3; - } - - /* Save length for computing whole length at end if there's a repeat that - requires duplication of the group. Also save the current value of - branch_extra, and start the new group with the new value. If non-zero, this - will either be 2 for a (?imsx: group, or 3 for a lookbehind assertion. */ - - if (brastackptr >= sizeof(brastack)/sizeof(int)) - { - errorcode = ERR19; - goto PCRE_ERROR_RETURN; - } - - bralenstack[brastackptr] = branch_extra; - branch_extra = branch_newextra; - - brastack[brastackptr++] = length; - length += bracket_length; - continue; - - /* Handle ket. Look for subsequent max/min; for certain sets of values we - have to replicate this bracket up to that many times. If brastackptr is - 0 this is an unmatched bracket which will generate an error, but take care - not to try to access brastack[-1] when computing the length and restoring - the branch_extra value. */ - - case ')': - length += 1 + LINK_SIZE; - if (brastackptr > 0) - { - duplength = length - brastack[--brastackptr]; - branch_extra = bralenstack[brastackptr]; - } - else duplength = 0; - - /* The following code is also used when a recursion such as (?3) is - followed by a quantifier, because in that case, it has to be wrapped inside - brackets so that the quantifier works. The value of duplength must be - set before arrival. */ - - HANDLE_QUANTIFIED_BRACKETS: - - /* Leave ptr at the final char; for read_repeat_counts this happens - automatically; for the others we need an increment. */ - - if ((c = ptr[1]) == '{' && is_counted_repeat(ptr+2)) - { - ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); - if (errorcode != 0) goto PCRE_ERROR_RETURN; - } - else if (c == '*') { min = 0; max = -1; ptr++; } - else if (c == '+') { min = 1; max = -1; ptr++; } - else if (c == '?') { min = 0; max = 1; ptr++; } - else { min = 1; max = 1; } - - /* If the minimum is zero, we have to allow for an OP_BRAZERO before the - group, and if the maximum is greater than zero, we have to replicate - maxval-1 times; each replication acquires an OP_BRAZERO plus a nesting - bracket set. */ - - if (min == 0) - { - length++; - if (max > 0) length += (max - 1) * (duplength + 3 + 2*LINK_SIZE); - } - - /* When the minimum is greater than zero, we have to replicate up to - minval-1 times, with no additions required in the copies. Then, if there - is a limited maximum we have to replicate up to maxval-1 times allowing - for a BRAZERO item before each optional copy and nesting brackets for all - but one of the optional copies. */ - - else - { - length += (min - 1) * duplength; - if (max > min) /* Need this test as max=-1 means no limit */ - length += (max - min) * (duplength + 3 + 2*LINK_SIZE) - - (2 + 2*LINK_SIZE); - } - - /* Allow space for once brackets for "possessive quantifier" */ - - if (ptr[1] == '+') - { - ptr++; - length += 2 + 2*LINK_SIZE; - } - continue; - - /* Non-special character. It won't be space or # in extended mode, so it is - always a genuine character. If we are in a \Q...\E sequence, check for the - end; if not, we have a literal. */ - - default: - NORMAL_CHAR: - - if (inescq && c == '\\' && ptr[1] == 'E') - { - inescq = FALSE; - ptr++; - continue; - } - - length += 2; /* For a one-byte character */ - lastitemlength = 1; /* Default length of last item for repeats */ - - /* In UTF-8 mode, check for additional bytes. */ - -#ifdef SUPPORT_UTF8 - if (utf8 && (c & 0xc0) == 0xc0) - { - while ((ptr[1] & 0xc0) == 0x80) /* Can't flow over the end */ - { /* because the end is marked */ - lastitemlength++; /* by a zero byte. */ - length++; - ptr++; - } - } -#endif - - continue; - } - } - -length += 2 + LINK_SIZE; /* For final KET and END */ - -if ((options & PCRE_AUTO_CALLOUT) != 0) - length += 2 + 2*LINK_SIZE; /* For final callout */ - -if (length > MAX_PATTERN_SIZE) - { - errorcode = ERR20; - goto PCRE_EARLY_ERROR_RETURN; - } - -/* Compute the size of data block needed and get it, either from malloc or -externally provided function. */ - -size = length + sizeof(real_pcre) + name_count * (max_name_size + 3); -re = (real_pcre *)(pcre_malloc)(size); - -if (re == NULL) - { - errorcode = ERR21; - goto PCRE_EARLY_ERROR_RETURN; - } - -/* Put in the magic number, and save the sizes, options, and character table -pointer. NULL is used for the default character tables. The nullpad field is at -the end; it's there to help in the case when a regex compiled on a system with -4-byte pointers is run on another with 8-byte pointers. */ +/* Put in the magic number, and save the sizes, initial options, and character +table pointer. NULL is used for the default character tables. The nullpad field +is at the end; it's there to help in the case when a regex compiled on a system +with 4-byte pointers is run on another with 8-byte pointers. */ re->magic_number = MAGIC_NUMBER; re->size = size; -re->options = options; +re->options = cd->external_options; re->dummy1 = 0; +re->first_byte = 0; +re->req_byte = 0; re->name_table_offset = sizeof(real_pcre); -re->name_entry_size = max_name_size + 3; -re->name_count = name_count; +re->name_entry_size = cd->name_entry_size; +re->name_count = cd->names_found; re->ref_count = 0; re->tables = (tables == _pcre_default_tables)? NULL : tables; re->nullpad = NULL; /* The starting points of the name/number translation table and of the code are -passed around in the compile data block. */ +passed around in the compile data block. The start/end pattern and initial +options are already set from the pre-compile phase, as is the name_entry_size +field. Reset the bracket count and the names_found field. Also reset the hwm +field; this time it's used for remembering forward references to subpatterns. +*/ -compile_block.names_found = 0; -compile_block.name_entry_size = max_name_size + 3; -compile_block.name_table = (uschar *)re + re->name_table_offset; -codestart = compile_block.name_table + re->name_entry_size * re->name_count; -compile_block.start_code = codestart; -compile_block.start_pattern = (const uschar *)pattern; -compile_block.req_varyopt = 0; -compile_block.nopartial = FALSE; +cd->bracount = 0; +cd->names_found = 0; +cd->name_table = (uschar *)re + re->name_table_offset; +codestart = cd->name_table + re->name_entry_size * re->name_count; +cd->start_code = codestart; +cd->hwm = cworkspace; +cd->req_varyopt = 0; +cd->nopartial = FALSE; /* Set up a starting, non-extracting bracket, then compile the expression. On error, errorcode will be set non-zero, so we don't need to look at the result @@ -4979,13 +5275,12 @@ of the function here. */ ptr = (const uschar *)pattern; code = (uschar *)codestart; *code = OP_BRA; -bracount = 0; -(void)compile_regex(options, options & PCRE_IMS, &bracount, &code, &ptr, - &errorcode, FALSE, 0, &firstbyte, &reqbyte, NULL, &compile_block); -re->top_bracket = bracount; -re->top_backref = compile_block.top_backref; +(void)compile_regex(re->options, re->options & PCRE_IMS, &code, &ptr, + &errorcode, FALSE, 0, &firstbyte, &reqbyte, NULL, cd, NULL); +re->top_bracket = cd->bracount; +re->top_backref = cd->top_backref; -if (compile_block.nopartial) re->options |= PCRE_NOPARTIAL; +if (cd->nopartial) re->options |= PCRE_NOPARTIAL; /* If not reached end of pattern on success, there's an excess bracket. */ @@ -5000,19 +5295,35 @@ if debugging, leave the test till after if (code - codestart > length) errorcode = ERR23; #endif +/* Fill in any forward references that are required. */ + +while (errorcode == 0 && cd->hwm > cworkspace) + { + int offset, recno; + const uschar *groupptr; + cd->hwm -= LINK_SIZE; + offset = GET(cd->hwm, 0); + recno = GET(codestart, offset); + groupptr = find_bracket(codestart, (re->options & PCRE_UTF8) != 0, recno); + if (groupptr == NULL) errorcode = ERR53; + else PUT(((uschar *)codestart), offset, groupptr - codestart); + } + /* Give an error if there's back reference to a non-existent capturing subpattern. */ -if (re->top_backref > re->top_bracket) errorcode = ERR15; +if (errorcode == 0 && re->top_backref > re->top_bracket) errorcode = ERR15; /* Failed to compile, or error while post-processing */ if (errorcode != 0) { (pcre_free)(re); - PCRE_ERROR_RETURN: - *erroroffset = ptr - (const uschar *)pattern; PCRE_EARLY_ERROR_RETURN: + *erroroffset = ptr - (const uschar *)pattern; +#ifdef SUPPORT_UTF8 + PCRE_UTF8_ERROR_RETURN: +#endif *errorptr = error_texts[errorcode]; if (errorcodeptr != NULL) *errorcodeptr = errorcode; return NULL; @@ -5022,16 +5333,16 @@ if (errorcode != 0) the pattern is anchored by virtue of ^ characters or \A or anything else (such as starting with .* when DOTALL is set). -Otherwise, if we know what the first character has to be, save it, because that +Otherwise, if we know what the first byte has to be, save it, because that speeds up unanchored matches no end. If not, see if we can set the PCRE_STARTLINE flag. This is helpful for multiline matches when all branches start with ^. and also when all branches start with .* for non-DOTALL matches. */ -if ((options & PCRE_ANCHORED) == 0) +if ((re->options & PCRE_ANCHORED) == 0) { - int temp_options = options; - if (is_anchored(codestart, &temp_options, 0, compile_block.backref_map)) + int temp_options = re->options; /* May get changed during these scans */ + if (is_anchored(codestart, &temp_options, 0, cd->backref_map)) re->options |= PCRE_ANCHORED; else { @@ -5041,10 +5352,10 @@ if ((options & PCRE_ANCHORED) == 0) { int ch = firstbyte & 255; re->first_byte = ((firstbyte & REQ_CASELESS) != 0 && - compile_block.fcc[ch] == ch)? ch : firstbyte; + cd->fcc[ch] == ch)? ch : firstbyte; re->options |= PCRE_FIRSTSET; } - else if (is_startline(codestart, 0, compile_block.backref_map)) + else if (is_startline(codestart, 0, cd->backref_map)) re->options |= PCRE_STARTLINE; } } @@ -5058,7 +5369,7 @@ if (reqbyte >= 0 && { int ch = reqbyte & 255; re->req_byte = ((reqbyte & REQ_CASELESS) != 0 && - compile_block.fcc[ch] == ch)? (reqbyte & ~REQ_CASELESS) : reqbyte; + cd->fcc[ch] == ch)? (reqbyte & ~REQ_CASELESS) : reqbyte; re->options |= PCRE_REQCHSET; } @@ -5072,11 +5383,10 @@ printf("Length = %d top_bracket = %d top if (re->options != 0) { - printf("%s%s%s%s%s%s%s%s%s%s\n", + printf("%s%s%s%s%s%s%s%s%s\n", ((re->options & PCRE_NOPARTIAL) != 0)? "nopartial " : "", ((re->options & PCRE_ANCHORED) != 0)? "anchored " : "", ((re->options & PCRE_CASELESS) != 0)? "caseless " : "", - ((re->options & PCRE_ICHANGED) != 0)? "case state changed " : "", ((re->options & PCRE_EXTENDED) != 0)? "extended " : "", ((re->options & PCRE_MULTILINE) != 0)? "multiline " : "", ((re->options & PCRE_DOTALL) != 0)? "dotall " : "", @@ -5116,7 +5426,7 @@ if (code - codestart > length) if (errorcodeptr != NULL) *errorcodeptr = ERR23; return NULL; } -#endif +#endif /* DEBUG */ return (pcre *)re; } diff -Nurp tin-1.9.1/pcre/pcre_dfa_exec.c tin-1.9.2/pcre/pcre_dfa_exec.c --- tin-1.9.1/pcre/pcre_dfa_exec.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_dfa_exec.c 2006-12-19 10:31:35.000000000 +0100 @@ -39,10 +39,15 @@ POSSIBILITY OF SUCH DAMAGE. /* This module contains the external function pcre_dfa_exec(), which is an -alternative matching function that uses a DFA algorithm. This is NOT Perl- -compatible, but it has advantages in certain applications. */ +alternative matching function that uses a sort of DFA algorithm (not a true +FSM). This is NOT Perl- compatible, but it has advantages in certain +applications. */ +#define NLBLOCK md /* Block containing newline information */ +#define PSSTART start_subject /* Field containing processed string start */ +#define PSEND end_subject /* Field containing processed string end */ + #include "pcre_internal.h" @@ -57,11 +62,12 @@ compatible, but it has advantages in cer *************************************************/ /* These are offsets that are used to turn the OP_TYPESTAR and friends opcodes -into others, under special conditions. A gap of 10 between the blocks should be +into others, under special conditions. A gap of 20 between the blocks should be enough. */ -#define OP_PROP_EXTRA (EXTRACT_BASIC_MAX+1) -#define OP_EXTUNI_EXTRA (EXTRACT_BASIC_MAX+11) +#define OP_PROP_EXTRA 100 +#define OP_EXTUNI_EXTRA 120 +#define OP_ANYNL_EXTRA 140 /* This table identifies those opcodes that are followed immediately by a @@ -74,7 +80,7 @@ static uschar coptable[] = { 0, /* End */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* \A, \G, \B, \b, \D, \d, \S, \s, \W, \w */ 0, 0, /* Any, Anybyte */ - 0, 0, 0, /* NOTPROP, PROP, EXTUNI */ + 0, 0, 0, 0, /* NOTPROP, PROP, EXTUNI, ANYNL */ 0, 0, 0, 0, 0, /* \Z, \z, Opt, ^, $ */ 1, /* Char */ 1, /* Charnc */ @@ -82,12 +88,15 @@ static uschar coptable[] = { /* Positive single-char repeats */ 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ 3, 3, 3, /* upto, minupto, exact */ + 1, 1, 1, 3, /* *+, ++, ?+, upto+ */ /* Negative single-char repeats - only for chars < 256 */ 1, 1, 1, 1, 1, 1, /* NOT *, *?, +, +?, ?, ?? */ 3, 3, 3, /* NOT upto, minupto, exact */ + 1, 1, 1, 3, /* NOT *+, ++, ?+, updo+ */ /* Positive type repeats */ 1, 1, 1, 1, 1, 1, /* Type *, *?, +, +?, ?, ?? */ 3, 3, 3, /* Type upto, minupto, exact */ + 1, 1, 1, 3, /* Type *+, ++, ?+, upto+ */ /* Character class & ref repeats */ 0, 0, 0, 0, 0, 0, /* *, *?, +, +?, ?, ?? */ 0, 0, /* CRRANGE, CRMINRANGE */ @@ -106,12 +115,12 @@ static uschar coptable[] = { 0, /* Assert behind */ 0, /* Assert behind not */ 0, /* Reverse */ - 0, /* Once */ - 0, /* COND */ + 0, 0, 0, 0, /* ONCE, BRA, CBRA, COND */ + 0, 0, 0, /* SBRA, SCBRA, SCOND */ 0, /* CREF */ - 0, 0, /* BRAZERO, BRAMINZERO */ - 0, /* BRANUMBER */ - 0 /* BRA */ + 0, /* RREF */ + 0, /* DEF */ + 0, 0 /* BRAZERO, BRAMINZERO */ }; /* These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W, @@ -277,7 +286,7 @@ stateblock *next_active_state, *next_new const uschar *ctypes, *lcc, *fcc; const uschar *ptr; -const uschar *end_code; +const uschar *end_code, *first_op; int active_count, new_count, match_count; @@ -290,6 +299,8 @@ const uschar *start_code = md->start_cod #ifdef SUPPORT_UTF8 BOOL utf8 = (md->poptions & PCRE_UTF8) != 0; +#else +BOOL utf8 = FALSE; #endif rlevel++; @@ -313,6 +324,9 @@ active_states = (stateblock *)(workspace next_new_state = new_states = active_states + wscount; new_count = 0; +first_op = this_start_code + 1 + LINK_SIZE + + ((*this_start_code == OP_CBRA || *this_start_code == OP_SCBRA)? 2:0); + /* The first thing in any (sub) pattern is a bracket of some sort. Push all the alternative states onto the list, and find out where the end is. This makes is possible to use this function recursively, when we want to stop at a @@ -322,7 +336,7 @@ If the first opcode in the first alterna a backward assertion. In that case, we have to find out the maximum amount to move back, and set up each alternative appropriately. */ -if (this_start_code[1+LINK_SIZE] == OP_REVERSE) +if (*first_op == OP_REVERSE) { int max_back = 0; int gone_back; @@ -404,10 +418,13 @@ else else { + int length = 1 + LINK_SIZE + + ((*this_start_code == OP_CBRA || *this_start_code == OP_SCBRA)? 2:0); do { - ADD_NEW(end_code - start_code + 1 + LINK_SIZE, 0); + ADD_NEW(end_code - start_code + length, 0); end_code += GET(end_code, 1); + length = 1 + LINK_SIZE; } while (*end_code == OP_ALT); } @@ -423,7 +440,8 @@ ptr = current_subject; for (;;) { int i, j; - int c, d, clen, dlen; + int clen, dlen; + unsigned int c, d; /* Make the new state list into the active state list and empty the new state list. */ @@ -459,7 +477,7 @@ for (;;) if (ptr < end_subject) { - clen = 1; + clen = 1; /* Number of bytes in the character */ #ifdef SUPPORT_UTF8 if (utf8) { GETCHARLEN(c, ptr, clen); } else #endif /* SUPPORT_UTF8 */ @@ -467,8 +485,8 @@ for (;;) } else { - clen = 0; /* At end subject */ - c = -1; + clen = 0; /* This indicates the end of the subject */ + c = NOTACHAR; /* This value should never actually be used */ } /* Scan up the active states and act on each one. The result of an action @@ -486,7 +504,7 @@ for (;;) #ifdef DEBUG printf ("%.*sProcessing state %d c=", rlevel*2-2, SP, state_offset); - if (c < 0) printf("-1\n"); + if (clen == 0) printf("EOL\n"); else if (c > 32 && c < 127) printf("'%c'\n", c); else printf("0x%02x\n", c); #endif @@ -530,7 +548,6 @@ for (;;) code = start_code + state_offset; codevalue = *code; - if (codevalue >= OP_BRA) codevalue = OP_BRA; /* All brackets are equal */ /* If this opcode is followed by an inline character, load it. It is tempting to test for the presence of a subject character here, but that @@ -552,15 +569,21 @@ for (;;) d = code[coptable[codevalue]]; if (codevalue >= OP_TYPESTAR) { - if (d == OP_ANYBYTE) return PCRE_ERROR_DFA_UITEM; - if (d >= OP_NOTPROP) - codevalue += (d == OP_EXTUNI)? OP_EXTUNI_EXTRA : OP_PROP_EXTRA; + switch(d) + { + case OP_ANYBYTE: return PCRE_ERROR_DFA_UITEM; + case OP_NOTPROP: + case OP_PROP: codevalue += OP_PROP_EXTRA; break; + case OP_ANYNL: codevalue += OP_ANYNL_EXTRA; break; + case OP_EXTUNI: codevalue += OP_EXTUNI_EXTRA; break; + default: break; + } } } else { dlen = 0; /* Not strictly necessary, but compilers moan */ - d = -1; /* if these variables are not set. */ + d = NOTACHAR; /* if these variables are not set. */ } @@ -622,6 +645,7 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_BRA: + case OP_SBRA: do { ADD_ACTIVE(code - start_code + 1 + LINK_SIZE, 0); @@ -631,6 +655,18 @@ for (;;) break; /*-----------------------------------------------------------------*/ + case OP_CBRA: + case OP_SCBRA: + ADD_ACTIVE(code - start_code + 3 + LINK_SIZE, 0); + code += GET(code, 1); + while (*code == OP_ALT) + { + ADD_ACTIVE(code - start_code + 1 + LINK_SIZE, 0); + code += GET(code, 1); + } + break; + + /*-----------------------------------------------------------------*/ case OP_BRAZERO: case OP_BRAMINZERO: ADD_ACTIVE(state_offset + 1, 0); @@ -640,14 +676,11 @@ for (;;) break; /*-----------------------------------------------------------------*/ - case OP_BRANUMBER: - ADD_ACTIVE(state_offset + 1 + LINK_SIZE, 0); - break; - - /*-----------------------------------------------------------------*/ case OP_CIRC: if ((ptr == start_subject && (md->moptions & PCRE_NOTBOL) == 0) || - ((ims & PCRE_MULTILINE) != 0 && ptr[-1] == NEWLINE)) + ((ims & PCRE_MULTILINE) != 0 && + ptr != end_subject && + WAS_NEWLINE(ptr))) { ADD_ACTIVE(state_offset + 1, 0); } break; @@ -681,13 +714,13 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_ANY: - if (clen > 0 && (c != NEWLINE || (ims & PCRE_DOTALL) != 0)) + if (clen > 0 && ((ims & PCRE_DOTALL) != 0 || !IS_NEWLINE(ptr))) { ADD_NEW(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_EODN: - if (clen == 0 || (c == NEWLINE && ptr + 1 == end_subject)) + if (clen == 0 || (IS_NEWLINE(ptr) && ptr == end_subject - md->nllen)) { ADD_ACTIVE(state_offset + 1, 0); } break; @@ -695,11 +728,13 @@ for (;;) case OP_DOLL: if ((md->moptions & PCRE_NOTEOL) == 0) { - if (clen == 0 || (c == NEWLINE && (ptr + 1 == end_subject || - (ims & PCRE_MULTILINE) != 0))) + if (clen == 0 || + (IS_NEWLINE(ptr) && + ((ims & PCRE_MULTILINE) != 0 || ptr == end_subject - md->nllen) + )) { ADD_ACTIVE(state_offset + 1, 0); } } - else if (c == NEWLINE && (ims & PCRE_MULTILINE) != 0) + else if ((ims & PCRE_MULTILINE) != 0 && IS_NEWLINE(ptr)) { ADD_ACTIVE(state_offset + 1, 0); } break; @@ -805,15 +840,24 @@ for (;;) case OP_TYPEPLUS: case OP_TYPEMINPLUS: + case OP_TYPEPOSPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); } if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && - (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && + (d != OP_ANY || + (ims & PCRE_DOTALL) != 0 || + !IS_NEWLINE(ptr) + ) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { + if (count > 0 && codevalue == OP_TYPEPOSPLUS) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } count++; ADD_NEW(state_offset, count); } @@ -823,14 +867,23 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_TYPEQUERY: case OP_TYPEMINQUERY: + case OP_TYPEPOSQUERY: ADD_ACTIVE(state_offset + 2, 0); if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && - (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && + (d != OP_ANY || + (ims & PCRE_DOTALL) != 0 || + !IS_NEWLINE(ptr) + ) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { + if (codevalue == OP_TYPEPOSQUERY) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } ADD_NEW(state_offset + 2, 0); } } @@ -839,14 +892,23 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_TYPESTAR: case OP_TYPEMINSTAR: + case OP_TYPEPOSSTAR: ADD_ACTIVE(state_offset + 2, 0); if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && - (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && + (d != OP_ANY || + (ims & PCRE_DOTALL) != 0 || + !IS_NEWLINE(ptr) + ) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { + if (codevalue == OP_TYPEPOSSTAR) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } ADD_NEW(state_offset, 0); } } @@ -854,18 +916,46 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_TYPEEXACT: + count = current_state->count; /* Number already matched */ + if (clen > 0) + { + if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || + (c < 256 && + (d != OP_ANY || + (ims & PCRE_DOTALL) != 0 || + !IS_NEWLINE(ptr) + ) && + ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) + { + if (++count >= GET2(code, 1)) + { ADD_NEW(state_offset + 4, 0); } + else + { ADD_NEW(state_offset, count); } + } + } + break; + + /*-----------------------------------------------------------------*/ case OP_TYPEUPTO: case OP_TYPEMINUPTO: - if (codevalue != OP_TYPEEXACT) - { ADD_ACTIVE(state_offset + 4, 0); } + case OP_TYPEPOSUPTO: + ADD_ACTIVE(state_offset + 4, 0); count = current_state->count; /* Number already matched */ if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && - (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && + (d != OP_ANY || + (ims & PCRE_DOTALL) != 0 || + !IS_NEWLINE(ptr) + ) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { + if (codevalue == OP_TYPEPOSUPTO) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + 4, 0); } else @@ -876,12 +966,13 @@ for (;;) /* ========================================================================== */ /* These are virtual opcodes that are used when something like - OP_TYPEPLUS has OP_PROP, OP_NOTPROP, or OP_EXTUNI as its argument. It - keeps the code above fast for the other cases. The argument is in the - d variable. */ + OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its + argument. It keeps the code above fast for the other cases. The argument + is in the d variable. */ case OP_PROP_EXTRA + OP_TYPEPLUS: case OP_PROP_EXTRA + OP_TYPEMINPLUS: + case OP_PROP_EXTRA + OP_TYPEPOSPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 4, 0); } if (clen > 0) @@ -917,19 +1008,34 @@ for (;;) break; } - if (OK == (d == OP_PROP)) { count++; ADD_NEW(state_offset, count); } + if (OK == (d == OP_PROP)) + { + if (count > 0 && codevalue == OP_PROP_EXTRA + OP_TYPEPOSPLUS) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + count++; + ADD_NEW(state_offset, count); + } } break; /*-----------------------------------------------------------------*/ case OP_EXTUNI_EXTRA + OP_TYPEPLUS: case OP_EXTUNI_EXTRA + OP_TYPEMINPLUS: + case OP_EXTUNI_EXTRA + OP_TYPEPOSPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); } if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M) { const uschar *nptr = ptr + clen; int ncount = 0; + if (count > 0 && codevalue == OP_EXTUNI_EXTRA + OP_TYPEPOSPLUS) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } while (nptr < end_subject) { int nd; @@ -945,13 +1051,49 @@ for (;;) break; /*-----------------------------------------------------------------*/ + case OP_ANYNL_EXTRA + OP_TYPEPLUS: + case OP_ANYNL_EXTRA + OP_TYPEMINPLUS: + case OP_ANYNL_EXTRA + OP_TYPEPOSPLUS: + count = current_state->count; /* Already matched */ + if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); } + if (clen > 0) + { + int ncount = 0; + switch (c) + { + case 0x000d: + if (ptr + 1 < end_subject && ptr[1] == 0x0a) ncount = 1; + /* Fall through */ + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + if (count > 0 && codevalue == OP_ANYNL_EXTRA + OP_TYPEPOSPLUS) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + count++; + ADD_NEW_DATA(-state_offset, count, ncount); + break; + default: + break; + } + } + break; + + /*-----------------------------------------------------------------*/ case OP_PROP_EXTRA + OP_TYPEQUERY: case OP_PROP_EXTRA + OP_TYPEMINQUERY: + case OP_PROP_EXTRA + OP_TYPEPOSQUERY: count = 4; goto QS1; case OP_PROP_EXTRA + OP_TYPESTAR: case OP_PROP_EXTRA + OP_TYPEMINSTAR: + case OP_PROP_EXTRA + OP_TYPEPOSSTAR: count = 0; QS1: @@ -990,18 +1132,29 @@ for (;;) break; } - if (OK == (d == OP_PROP)) { ADD_NEW(state_offset + count, 0); } + if (OK == (d == OP_PROP)) + { + if (codevalue == OP_PROP_EXTRA + OP_TYPEPOSSTAR || + codevalue == OP_PROP_EXTRA + OP_TYPEPOSQUERY) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + ADD_NEW(state_offset + count, 0); + } } break; /*-----------------------------------------------------------------*/ case OP_EXTUNI_EXTRA + OP_TYPEQUERY: case OP_EXTUNI_EXTRA + OP_TYPEMINQUERY: + case OP_EXTUNI_EXTRA + OP_TYPEPOSQUERY: count = 2; goto QS2; case OP_EXTUNI_EXTRA + OP_TYPESTAR: case OP_EXTUNI_EXTRA + OP_TYPEMINSTAR: + case OP_EXTUNI_EXTRA + OP_TYPEPOSSTAR: count = 0; QS2: @@ -1011,6 +1164,12 @@ for (;;) { const uschar *nptr = ptr + clen; int ncount = 0; + if (codevalue == OP_EXTUNI_EXTRA + OP_TYPEPOSSTAR || + codevalue == OP_EXTUNI_EXTRA + OP_TYPEPOSQUERY) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } while (nptr < end_subject) { int nd; @@ -1025,9 +1184,52 @@ for (;;) break; /*-----------------------------------------------------------------*/ + case OP_ANYNL_EXTRA + OP_TYPEQUERY: + case OP_ANYNL_EXTRA + OP_TYPEMINQUERY: + case OP_ANYNL_EXTRA + OP_TYPEPOSQUERY: + count = 2; + goto QS3; + + case OP_ANYNL_EXTRA + OP_TYPESTAR: + case OP_ANYNL_EXTRA + OP_TYPEMINSTAR: + case OP_ANYNL_EXTRA + OP_TYPEPOSSTAR: + count = 0; + + QS3: + ADD_ACTIVE(state_offset + 2, 0); + if (clen > 0) + { + int ncount = 0; + switch (c) + { + case 0x000d: + if (ptr + 1 < end_subject && ptr[1] == 0x0a) ncount = 1; + /* Fall through */ + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + if (codevalue == OP_ANYNL_EXTRA + OP_TYPEPOSSTAR || + codevalue == OP_ANYNL_EXTRA + OP_TYPEPOSQUERY) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + ADD_NEW_DATA(-(state_offset + count), 0, ncount); + break; + default: + break; + } + } + break; + + /*-----------------------------------------------------------------*/ case OP_PROP_EXTRA + OP_TYPEEXACT: case OP_PROP_EXTRA + OP_TYPEUPTO: case OP_PROP_EXTRA + OP_TYPEMINUPTO: + case OP_PROP_EXTRA + OP_TYPEPOSUPTO: if (codevalue != OP_PROP_EXTRA + OP_TYPEEXACT) { ADD_ACTIVE(state_offset + 6, 0); } count = current_state->count; /* Number already matched */ @@ -1066,6 +1268,11 @@ for (;;) if (OK == (d == OP_PROP)) { + if (codevalue == OP_PROP_EXTRA + OP_TYPEPOSUPTO) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + 6, 0); } else @@ -1078,6 +1285,7 @@ for (;;) case OP_EXTUNI_EXTRA + OP_TYPEEXACT: case OP_EXTUNI_EXTRA + OP_TYPEUPTO: case OP_EXTUNI_EXTRA + OP_TYPEMINUPTO: + case OP_EXTUNI_EXTRA + OP_TYPEPOSUPTO: if (codevalue != OP_EXTUNI_EXTRA + OP_TYPEEXACT) { ADD_ACTIVE(state_offset + 4, 0); } count = current_state->count; /* Number already matched */ @@ -1085,6 +1293,11 @@ for (;;) { const uschar *nptr = ptr + clen; int ncount = 0; + if (codevalue == OP_EXTUNI_EXTRA + OP_TYPEPOSUPTO) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } while (nptr < end_subject) { int nd; @@ -1101,6 +1314,44 @@ for (;;) } break; + /*-----------------------------------------------------------------*/ + case OP_ANYNL_EXTRA + OP_TYPEEXACT: + case OP_ANYNL_EXTRA + OP_TYPEUPTO: + case OP_ANYNL_EXTRA + OP_TYPEMINUPTO: + case OP_ANYNL_EXTRA + OP_TYPEPOSUPTO: + if (codevalue != OP_ANYNL_EXTRA + OP_TYPEEXACT) + { ADD_ACTIVE(state_offset + 4, 0); } + count = current_state->count; /* Number already matched */ + if (clen > 0) + { + int ncount = 0; + switch (c) + { + case 0x000d: + if (ptr + 1 < end_subject && ptr[1] == 0x0a) ncount = 1; + /* Fall through */ + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + if (codevalue == OP_ANYNL_EXTRA + OP_TYPEPOSUPTO) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + if (++count >= GET2(code, 1)) + { ADD_NEW_DATA(-(state_offset + 4), 0, ncount); } + else + { ADD_NEW_DATA(-state_offset, count, ncount); } + break; + default: + break; + } + } + break; + /* ========================================================================== */ /* These opcodes are followed by a character that is usually compared to the current subject character; it is loaded into d. We still get @@ -1121,7 +1372,7 @@ for (;;) { if (c == d) { ADD_NEW(state_offset + dlen + 1, 0); } else { - int othercase; + unsigned int othercase; if (c < 128) othercase = fcc[c]; else /* If we have Unicode property support, we can use it to test the @@ -1130,7 +1381,7 @@ for (;;) #ifdef SUPPORT_UCP othercase = _pcre_ucp_othercase(c); #else - othercase = -1; + othercase = NOTACHAR; #endif if (d == othercase) { ADD_NEW(state_offset + dlen + 1, 0); } @@ -1171,6 +1422,35 @@ for (;;) #endif /*-----------------------------------------------------------------*/ + /* This is a tricky like EXTUNI because it too can match more than one + character (when CR is followed by LF). In this case, set up a negative + state to wait for one character to pass before continuing. */ + + case OP_ANYNL: + if (clen > 0) switch(c) + { + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + ADD_NEW(state_offset + 1, 0); + break; + case 0x000d: + if (ptr + 1 < end_subject && ptr[1] == 0x0a) + { + ADD_NEW_DATA(-(state_offset + 1), 0, 1); + } + else + { + ADD_NEW(state_offset + 1, 0); + } + break; + } + break; + + /*-----------------------------------------------------------------*/ /* Match a negated single character. This is only used for one-byte characters, that is, we know that d < 256. The character we are checking (c) can be multibyte. */ @@ -1178,7 +1458,7 @@ for (;;) case OP_NOT: if (clen > 0) { - int otherd = ((ims & PCRE_CASELESS) != 0)? fcc[d] : d; + unsigned int otherd = ((ims & PCRE_CASELESS) != 0)? fcc[d] : d; if (c != d && c != otherd) { ADD_NEW(state_offset + dlen + 1, 0); } } break; @@ -1186,13 +1466,15 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: case OP_NOTPLUS: case OP_NOTMINPLUS: + case OP_NOTPOSPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + dlen + 1, 0); } if (clen > 0) { - int otherd = -1; + unsigned int otherd = NOTACHAR; if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 @@ -1207,20 +1489,31 @@ for (;;) otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) - { count++; ADD_NEW(state_offset, count); } + { + if (count > 0 && + (codevalue == OP_POSPLUS || codevalue == OP_NOTPOSPLUS)) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + count++; + ADD_NEW(state_offset, count); + } } break; /*-----------------------------------------------------------------*/ case OP_QUERY: case OP_MINQUERY: + case OP_POSQUERY: case OP_NOTQUERY: case OP_NOTMINQUERY: + case OP_NOTPOSQUERY: ADD_ACTIVE(state_offset + dlen + 1, 0); if (clen > 0) { - int otherd = -1; - if ((ims && PCRE_CASELESS) != 0) + unsigned int otherd = NOTACHAR; + if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && d >= 128) @@ -1234,20 +1527,29 @@ for (;;) otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) - { ADD_NEW(state_offset + dlen + 1, 0); } + { + if (codevalue == OP_POSQUERY || codevalue == OP_NOTPOSQUERY) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + ADD_NEW(state_offset + dlen + 1, 0); + } } break; /*-----------------------------------------------------------------*/ case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_NOTSTAR: case OP_NOTMINSTAR: + case OP_NOTPOSSTAR: ADD_ACTIVE(state_offset + dlen + 1, 0); if (clen > 0) { - int otherd = -1; - if ((ims && PCRE_CASELESS) != 0) + unsigned int otherd = NOTACHAR; + if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && d >= 128) @@ -1261,23 +1563,59 @@ for (;;) otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) - { ADD_NEW(state_offset, 0); } + { + if (codevalue == OP_POSSTAR || codevalue == OP_NOTPOSSTAR) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } + ADD_NEW(state_offset, 0); + } } break; /*-----------------------------------------------------------------*/ case OP_EXACT: + case OP_NOTEXACT: + count = current_state->count; /* Number already matched */ + if (clen > 0) + { + unsigned int otherd = NOTACHAR; + if ((ims & PCRE_CASELESS) != 0) + { +#ifdef SUPPORT_UTF8 + if (utf8 && d >= 128) + { +#ifdef SUPPORT_UCP + otherd = _pcre_ucp_othercase(d); +#endif /* SUPPORT_UCP */ + } + else +#endif /* SUPPORT_UTF8 */ + otherd = fcc[d]; + } + if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) + { + if (++count >= GET2(code, 1)) + { ADD_NEW(state_offset + dlen + 3, 0); } + else + { ADD_NEW(state_offset, count); } + } + } + break; + + /*-----------------------------------------------------------------*/ case OP_UPTO: case OP_MINUPTO: - case OP_NOTEXACT: + case OP_POSUPTO: case OP_NOTUPTO: case OP_NOTMINUPTO: - if (codevalue != OP_EXACT && codevalue != OP_NOTEXACT) - { ADD_ACTIVE(state_offset + dlen + 3, 0); } + case OP_NOTPOSUPTO: + ADD_ACTIVE(state_offset + dlen + 3, 0); count = current_state->count; /* Number already matched */ if (clen > 0) { - int otherd = -1; + unsigned int otherd = NOTACHAR; if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 @@ -1293,6 +1631,11 @@ for (;;) } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) { + if (codevalue == OP_POSUPTO || codevalue == OP_NOTPOSUPTO) + { + active_count--; /* Remove non-match possibility */ + next_active_state--; + } if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + dlen + 3, 0); } else @@ -1370,7 +1713,8 @@ for (;;) { ADD_ACTIVE(next_state_offset + 5, 0); } if (isinclass) { - if (++count >= GET2(ecode, 3)) + int max = GET2(ecode, 3); + if (++count >= max && max != 0) /* Max 0 => no limit */ { ADD_NEW(next_state_offset + 5, 0); } else { ADD_NEW(state_offset, count); } @@ -1420,18 +1764,31 @@ for (;;) /*-----------------------------------------------------------------*/ case OP_COND: + case OP_SCOND: { int local_offsets[1000]; int local_workspace[1000]; int condcode = code[LINK_SIZE+1]; - /* The only supported version of OP_CREF is for the value 0xffff, which - means "test if in a recursion". */ + /* Back reference conditions are not supported */ - if (condcode == OP_CREF) + if (condcode == OP_CREF) return PCRE_ERROR_DFA_UCOND; + + /* The DEFINE condition is always false */ + + if (condcode == OP_DEF) + { + ADD_ACTIVE(state_offset + GET(code, 1) + LINK_SIZE + 1, 0); + } + + /* The only supported version of OP_RREF is for the value RREF_ANY, + which means "test if in any recursion". We can't test for specifically + recursed groups. */ + + else if (condcode == OP_RREF) { int value = GET2(code, LINK_SIZE+2); - if (value != 0xffff) return PCRE_ERROR_DFA_UCOND; + if (value != RREF_ANY) return PCRE_ERROR_DFA_UCOND; if (recursing > 0) { ADD_ACTIVE(state_offset + LINK_SIZE + 4, 0); } else { ADD_ACTIVE(state_offset + GET(code, 1) + LINK_SIZE + 1, 0); } } @@ -1670,7 +2027,7 @@ for (;;) DPRINTF(("%.*sEnd of internal_dfa_exec %d: returning %d\n" "%.*s---------------------\n\n", rlevel*2-2, SP, rlevel, match_count, rlevel*2-2, SP)); - return match_count; + break; /* In effect, "return", but see the comment below */ } /* One or more states are active for the next character. */ @@ -1678,11 +2035,13 @@ for (;;) ptr += clen; /* Advance to next subject character */ } /* Loop to move along the subject string */ -/* Control never gets here, but we must keep the compiler happy. */ +/* Control gets here from "break" a few lines above. We do it this way because +if we use "return" above, we have compiler trouble. Some compilers warn if +there's nothing here because they think the function doesn't return a value. On +the other hand, if we put a dummy statement here, some more clever compilers +complain that it can't be reached. Sigh. */ -DPRINTF(("%.*s+++ Unexpected end of internal_dfa_exec %d +++\n" - "%.*s---------------------\n\n", rlevel*2-2, SP, rlevel, rlevel*2-2, SP)); -return PCRE_ERROR_NOMATCH; +return match_count; } @@ -1721,6 +2080,7 @@ pcre_dfa_exec(const pcre *argument_re, c { real_pcre *re = (real_pcre *)argument_re; dfa_match_data match_block; +dfa_match_data *md = &match_block; BOOL utf8, anchored, startline, firstline; const uschar *current_subject, *end_subject, *lcc; @@ -1735,6 +2095,7 @@ BOOL req_byte_caseless = FALSE; int first_byte = -1; int req_byte = -1; int req_byte2 = -1; +int newline; /* Plausibility checks */ @@ -1749,8 +2110,8 @@ flipping, so we scan the extra_data bloc match block, so we must initialize them beforehand. However, the other fields in the match block must not be set until after the byte flipping. */ -match_block.tables = re->tables; -match_block.callout_data = NULL; +md->tables = re->tables; +md->callout_data = NULL; if (extra_data != NULL) { @@ -1761,9 +2122,9 @@ if (extra_data != NULL) if ((flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) != 0) return PCRE_ERROR_DFA_UMLIMIT; if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0) - match_block.callout_data = extra_data->callout_data; + md->callout_data = extra_data->callout_data; if ((flags & PCRE_EXTRA_TABLES) != 0) - match_block.tables = extra_data->tables; + md->tables = extra_data->tables; } /* Check that the first field in the block is the magic number. If it is not, @@ -1784,19 +2145,58 @@ current_subject = (const unsigned char * end_subject = (const unsigned char *)subject + length; req_byte_ptr = current_subject - 1; +#ifdef SUPPORT_UTF8 utf8 = (re->options & PCRE_UTF8) != 0; +#else +utf8 = FALSE; +#endif anchored = (options & (PCRE_ANCHORED|PCRE_DFA_RESTART)) != 0 || (re->options & PCRE_ANCHORED) != 0; /* The remaining fixed data for passing around. */ -match_block.start_code = (const uschar *)argument_re + +md->start_code = (const uschar *)argument_re + re->name_table_offset + re->name_count * re->name_entry_size; -match_block.start_subject = (const unsigned char *)subject; -match_block.end_subject = end_subject; -match_block.moptions = options; -match_block.poptions = re->options; +md->start_subject = (const unsigned char *)subject; +md->end_subject = end_subject; +md->moptions = options; +md->poptions = re->options; + +/* Handle different types of newline. The two bits give four cases. If nothing +is set at run time, whatever was used at compile time applies. */ + +switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : options) & + PCRE_NEWLINE_BITS) + { + case 0: newline = NEWLINE; break; /* Compile-time default */ + case PCRE_NEWLINE_CR: newline = '\r'; break; + case PCRE_NEWLINE_LF: newline = '\n'; break; + case PCRE_NEWLINE_CR+ + PCRE_NEWLINE_LF: newline = ('\r' << 8) | '\n'; break; + case PCRE_NEWLINE_ANY: newline = -1; break; + default: return PCRE_ERROR_BADNEWLINE; + } + +if (newline < 0) + { + md->nltype = NLTYPE_ANY; + } +else + { + md->nltype = NLTYPE_FIXED; + if (newline > 255) + { + md->nllen = 2; + md->nl[0] = (newline >> 8) & 255; + md->nl[1] = newline & 255; + } + else + { + md->nllen = 1; + md->nl[0] = newline; + } + } /* Check a UTF-8 string if required. Unfortunately there's no way of passing back the character offset. */ @@ -1822,12 +2222,12 @@ if (utf8 && (options & PCRE_NO_UTF8_CHEC is a feature that makes it possible to save compiled regex and re-use them in other programs later. */ -if (match_block.tables == NULL) match_block.tables = _pcre_default_tables; +if (md->tables == NULL) md->tables = _pcre_default_tables; /* The lower casing table and the "must be at the start of a line" flag are used in a loop when finding where to start. */ -lcc = match_block.tables + lcc_offset; +lcc = md->tables + lcc_offset; startline = (re->options & PCRE_STARTLINE) != 0; firstline = (re->options & PCRE_FIRSTLINE) != 0; @@ -1860,7 +2260,7 @@ if ((re->options & PCRE_REQCHSET) != 0) { req_byte = re->req_byte & 255; req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0; - req_byte2 = (match_block.tables + fcc_offset)[req_byte]; /* case flipped */ + req_byte2 = (md->tables + fcc_offset)[req_byte]; /* case flipped */ } /* Call the main matching function, looping for a non-anchored regex after a @@ -1885,7 +2285,7 @@ for (;;) if (firstline) { const uschar *t = current_subject; - while (t < save_end_subject && *t != '\n') t++; + while (t < md->end_subject && !IS_NEWLINE(t)) t++; end_subject = t; } @@ -1900,13 +2300,13 @@ for (;;) current_subject++; } - /* Or to just after \n for a multiline match if possible */ + /* Or to just after a linebreak for a multiline match if possible */ else if (startline) { - if (current_subject > match_block.start_subject + start_offset) + if (current_subject > md->start_subject + start_offset) { - while (current_subject < end_subject && current_subject[-1] != NEWLINE) + while (current_subject <= end_subject && !WAS_NEWLINE(current_subject)) current_subject++; } } @@ -1987,17 +2387,17 @@ for (;;) /* OK, now we can do the business */ rc = internal_dfa_exec( - &match_block, /* fixed match data */ - match_block.start_code, /* this subexpression's code */ - current_subject, /* where we currently are */ - start_offset, /* start offset in subject */ - offsets, /* offset vector */ - offsetcount, /* size of same */ - workspace, /* workspace vector */ - wscount, /* size of same */ + md, /* fixed match data */ + md->start_code, /* this subexpression's code */ + current_subject, /* where we currently are */ + start_offset, /* start offset in subject */ + offsets, /* offset vector */ + offsetcount, /* size of same */ + workspace, /* workspace vector */ + wscount, /* size of same */ re->options & (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL), /* ims flags */ - 0, /* function recurse level */ - 0); /* regex recurse level */ + 0, /* function recurse level */ + 0); /* regex recurse level */ /* Anything other than "no match" means we are done, always; otherwise, carry on only if not anchored. */ @@ -2007,19 +2407,25 @@ for (;;) /* Advance to the next subject character unless we are at the end of a line and firstline is set. */ - if (firstline && *current_subject == NEWLINE) break; + if (firstline && IS_NEWLINE(current_subject)) break; current_subject++; - -#ifdef SUPPORT_UTF8 if (utf8) { while (current_subject < end_subject && (*current_subject & 0xc0) == 0x80) current_subject++; } -#endif - if (current_subject > end_subject) break; - } + + /* If we have just passed a CR and the newline option is CRLF or ANY, and we + are now at a LF, advance the match position by one more character. */ + + if (current_subject[-1] == '\r' && + (md->nltype == NLTYPE_ANY || md->nllen == 2) && + current_subject < end_subject && + *current_subject == '\n') + current_subject++; + + } /* "Bumpalong" loop */ return PCRE_ERROR_NOMATCH; } diff -Nurp tin-1.9.1/pcre/pcre_exec.c tin-1.9.2/pcre/pcre_exec.c --- tin-1.9.1/pcre/pcre_exec.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_exec.c 2006-12-19 10:31:35.000000000 +0100 @@ -42,25 +42,22 @@ POSSIBILITY OF SUCH DAMAGE. pattern matching using an NFA algorithm, trying to mimic Perl as closely as possible. There are also some static supporting functions. */ +#define NLBLOCK md /* Block containing newline information */ +#define PSSTART start_subject /* Field containing processed string start */ +#define PSEND end_subject /* Field containing processed string end */ #include "pcre_internal.h" +/* The chain of eptrblocks for tail recursions uses memory in stack workspace, +obtained at top level, the size of which is defined by EPTR_WORK_SIZE. */ -/* Structure for building a chain of data that actually lives on the -stack, for holding the values of the subject pointer at the start of each -subpattern, so as to detect when an empty string has been matched by a -subpattern - to break infinite loops. When NO_RECURSE is set, these blocks -are on the heap, not on the stack. */ - -typedef struct eptrblock { - struct eptrblock *epb_prev; - USPTR epb_saved_eptr; -} eptrblock; +#define EPTR_WORK_SIZE (1000) /* Flag bits for the match() function */ -#define match_condassert 0x01 /* Called to check a condition assertion */ -#define match_isgroup 0x02 /* Set if start of bracketed group */ +#define match_condassert 0x01 /* Called to check a condition assertion */ +#define match_cbegroup 0x02 /* Could-be-empty unlimited repeat group */ +#define match_tail_recursed 0x04 /* Tail recursive call */ /* Non-error returns from the match() function. Error returns are externally defined PCRE_ERROR_xxx codes, which are all negative. */ @@ -101,7 +98,7 @@ Returns: nothing static void pchars(const uschar *p, int length, BOOL is_subject, match_data *md) { -int c; +unsigned int c; if (is_subject && length > md->end_subject - p) length = md->end_subject - p; while (length-- > 0) if (isprint(c = *(p++))) printf("%c", c); else printf("\\x%02x", c); @@ -275,7 +272,7 @@ typedef struct heapframe { long int Xims; eptrblock *Xeptrb; int Xflags; - int Xrdepth; + unsigned int Xrdepth; /* Function local variables */ @@ -291,7 +288,6 @@ typedef struct heapframe { BOOL Xcur_is_word; BOOL Xcondition; - BOOL Xminimize; BOOL Xprev_is_word; unsigned long int Xoriginal_ims; @@ -303,11 +299,10 @@ typedef struct heapframe { int Xprop_category; int Xprop_chartype; int Xprop_script; - int *Xprop_test_variable; #endif int Xctype; - int Xfc; + unsigned int Xfc; int Xfi; int Xlength; int Xmax; @@ -340,10 +335,7 @@ typedef struct heapframe { * Match from current position * *************************************************/ -/* On entry ecode points to the first opcode, and eptr to the first character -in the subject string, while eptrb holds the value of eptr at the start of the -last bracketed group - used for breaking infinite loops matching zero-length -strings. This function is called recursively in many circumstances. Whenever it +/* This function is called recursively in many circumstances. Whenever it returns a negative (error) response, the outer incarnation must also return the same response. @@ -353,8 +345,8 @@ performance. Tests using gcc on a SPARC made performance worse. Arguments: - eptr pointer in subject - ecode position in code + eptr pointer to current character in subject + ecode pointer to current position in compiled code offset_top current top pointer md pointer to "static" info for the match ims current /i, /m, and /s options @@ -362,7 +354,9 @@ Arguments: brackets - for testing for empty matches flags can contain match_condassert - this is an assertion condition - match_isgroup - this is the start of a bracketed group + match_cbegroup - this is the start of an unlimited repeat + group that can match an empty string + match_tail_recursed - this is a tail_recursed group rdepth the recursion depth Returns: MATCH_MATCH if matched ) these values are >= 0 @@ -374,16 +368,18 @@ Returns: MATCH_MATCH if matched static int match(REGISTER USPTR eptr, REGISTER const uschar *ecode, int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb, - int flags, int rdepth) + int flags, unsigned int rdepth) { /* These variables do not need to be preserved over recursion in this function, -so they can be ordinary variables in all cases. Mark them with "register" -because they are used a lot in loops. */ +so they can be ordinary variables in all cases. Mark some of them with +"register" because they are used a lot in loops. */ -register int rrc; /* Returns from recursive calls */ -register int i; /* Used for loops not involving calls to RMATCH() */ -register int c; /* Character values not kept over RMATCH() calls */ -register BOOL utf8; /* Local copy of UTF-8 flag for speed */ +register int rrc; /* Returns from recursive calls */ +register int i; /* Used for loops not involving calls to RMATCH() */ +register unsigned int c; /* Character values not kept over RMATCH() calls */ +register BOOL utf8; /* Local copy of UTF-8 flag for speed */ + +BOOL minimize, possessive; /* Quantifier options */ /* When recursion is not being used, all "local" variables that have to be preserved over calls to RMATCH() are part of a "frame" which is obtained from @@ -434,7 +430,6 @@ HEAP_RECURSE: #define cur_is_word frame->Xcur_is_word #define condition frame->Xcondition -#define minimize frame->Xminimize #define prev_is_word frame->Xprev_is_word #define original_ims frame->Xoriginal_ims @@ -446,7 +441,6 @@ HEAP_RECURSE: #define prop_category frame->Xprop_category #define prop_chartype frame->Xprop_chartype #define prop_script frame->Xprop_script -#define prop_test_variable frame->Xprop_test_variable #endif #define ctype frame->Xctype @@ -470,7 +464,7 @@ HEAP_RECURSE: get preserved during recursion in the normal way. In this environment, fi and i, and fc and c, can be the same variables. */ -#else +#else /* NO_RECURSE not defined */ #define fi i #define fc c @@ -489,7 +483,6 @@ recursion_info new_recursive; /* wi /* that do not have to be preserved over */ BOOL cur_is_word; /* a recursive call to RMATCH(). */ BOOL condition; -BOOL minimize; BOOL prev_is_word; unsigned long int original_ims; @@ -501,7 +494,6 @@ int prop_fail_result; int prop_category; int prop_chartype; int prop_script; -int *prop_test_variable; #endif int ctype; @@ -516,7 +508,7 @@ int save_offset1, save_offset2, save_off int stacksave[REC_STACK_SAVE_MAX]; eptrblock newptrb; -#endif +#endif /* NO_RECURSE */ /* These statements are here to stop the compiler complaining about unitialized variables. */ @@ -524,9 +516,16 @@ variables. */ #ifdef SUPPORT_UCP prop_value = 0; prop_fail_result = 0; -prop_test_variable = NULL; #endif + +/* This label is used for tail recursion, which is used in a few cases even +when NO_RECURSE is not defined, in order to reduce the amount of stack that is +used. Thanks to Ian Taylor for noticing this possibility and sending the +original patch. */ + +TAIL_RECURSE: + /* OK, now we can get on with the real code of the function. Recursive calls are specified by the macro RMATCH and RRETURN is used to return. When NO_RECURSE is *not* defined, these just turn into a recursive call to match() @@ -542,26 +541,41 @@ if (md->match_call_count++ >= md->match_ if (rdepth >= md->match_limit_recursion) RRETURN(PCRE_ERROR_RECURSIONLIMIT); original_ims = ims; /* Save for resetting on ')' */ + +#ifdef SUPPORT_UTF8 utf8 = md->utf8; /* Local copy of the flag */ +#else +utf8 = FALSE; +#endif -/* At the start of a bracketed group, add the current subject pointer to the -stack of such pointers, to be re-instated at the end of the group when we hit -the closing ket. When match() is called in other circumstances, we don't add to -this stack. */ +/* At the start of a group with an unlimited repeat that may match an empty +string, the match_cbegroup flag is set. When this is the case, add the current +subject pointer to the chain of such remembered pointers, to be checked when we +hit the closing ket, in order to break infinite loops that match no characters. +When match() is called in other circumstances, don't add to the chain. If this +is a tail recursion, use a block from the workspace, as the one on the stack is +already used. */ -if ((flags & match_isgroup) != 0) +if ((flags & match_cbegroup) != 0) { - newptrb.epb_prev = eptrb; - newptrb.epb_saved_eptr = eptr; - eptrb = &newptrb; + eptrblock *p; + if ((flags & match_tail_recursed) != 0) + { + if (md->eptrn >= EPTR_WORK_SIZE) RRETURN(PCRE_ERROR_NULLWSLIMIT); + p = md->eptrchain + md->eptrn++; + } + else p = &newptrb; + p->epb_saved_eptr = eptr; + p->epb_prev = eptrb; + eptrb = p; } -/* Now start processing the operations. */ +/* Now start processing the opcodes. */ for (;;) { + minimize = possessive = FALSE; op = *ecode; - minimize = FALSE; /* For partial matching, remember if we ever hit the end of the subject after matching at least one subject character. */ @@ -571,33 +585,30 @@ for (;;) eptr > md->start_match) md->hitend = TRUE; - /* Opening capturing bracket. If there is space in the offset vector, save - the current subject position in the working slot at the top of the vector. We - mustn't change the current values of the data slot, because they may be set - from a previous iteration of this group, and be referred to by a reference - inside the group. - - If the bracket fails to match, we need to restore this value and also the - values of the final offsets, in case they were set by a previous iteration of - the same bracket. - - If there isn't enough space in the offset vector, treat this as if it were a - non-capturing bracket. Don't worry about setting the flag for the error case - here; that is handled in the code for KET. */ - - if (op > OP_BRA) + switch(op) { - number = op - OP_BRA; - - /* For extended extraction brackets (large number), we have to fish out the - number from a dummy opcode at the start. */ - - if (number > EXTRACT_BASIC_MAX) - number = GET2(ecode, 2+LINK_SIZE); + /* Handle a capturing bracket. If there is space in the offset vector, save + the current subject position in the working slot at the top of the vector. + We mustn't change the current values of the data slot, because they may be + set from a previous iteration of this group, and be referred to by a + reference inside the group. + + If the bracket fails to match, we need to restore this value and also the + values of the final offsets, in case they were set by a previous iteration + of the same bracket. + + If there isn't enough space in the offset vector, treat this as if it were + a non-capturing bracket. Don't worry about setting the flag for the error + case here; that is handled in the code for KET. */ + + case OP_CBRA: + case OP_SCBRA: + number = GET2(ecode, 1+LINK_SIZE); offset = number << 1; #ifdef DEBUG - printf("start bracket %d subject=", number); + printf("start bracket %d\n", number); + printf("subject="); pchars(eptr, 16, TRUE, md); printf("\n"); #endif @@ -612,10 +623,11 @@ for (;;) DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3)); md->offset_vector[md->offset_end - number] = eptr - md->start_subject; + flags = (op == OP_SCBRA)? match_cbegroup : 0; do { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, - match_isgroup); + RMATCH(rrc, eptr, ecode + _pcre_OP_lengths[*ecode], offset_top, md, + ims, eptrb, flags); if (rrc != MATCH_NOMATCH) RRETURN(rrc); md->capture_last = save_capture_last; ecode += GET(ecode, 1); @@ -631,79 +643,113 @@ for (;;) RRETURN(MATCH_NOMATCH); } - /* Insufficient room for saving captured contents */ + /* Insufficient room for saving captured contents. Treat as a non-capturing + bracket. */ - else op = OP_BRA; - } + DPRINTF(("insufficient capture room: treat as non-capturing\n")); - /* Other types of node can be handled by a switch */ + /* Non-capturing bracket. Loop for all the alternatives. When we get to the + final alternative within the brackets, we would return the result of a + recursive call to match() whatever happened. We can reduce stack usage by + turning this into a tail recursion. */ - switch(op) - { - case OP_BRA: /* Non-capturing bracket: optimized */ - DPRINTF(("start bracket 0\n")); - do + case OP_BRA: + case OP_SBRA: + DPRINTF(("start non-capturing bracket\n")); + flags = (op >= OP_SBRA)? match_cbegroup : 0; + for (;;) { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, - match_isgroup); + if (ecode[GET(ecode, 1)] != OP_ALT) + { + ecode += _pcre_OP_lengths[*ecode]; + flags |= match_tail_recursed; + DPRINTF(("bracket 0 tail recursion\n")); + goto TAIL_RECURSE; + } + + /* For non-final alternatives, continue the loop for a NOMATCH result; + otherwise return. */ + + RMATCH(rrc, eptr, ecode + _pcre_OP_lengths[*ecode], offset_top, md, ims, + eptrb, flags); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode, 1); } - while (*ecode == OP_ALT); - DPRINTF(("bracket 0 failed\n")); - RRETURN(MATCH_NOMATCH); + /* Control never reaches here. */ /* Conditional group: compilation checked that there are no more than two branches. If the condition is false, skipping the first branch takes us past the end if there is only one branch, but that's OK because that is - exactly what going to the ket would do. */ + exactly what going to the ket would do. As there is only one branch to be + obeyed, we can use tail recursion to avoid using another stack frame. */ case OP_COND: - if (ecode[LINK_SIZE+1] == OP_CREF) /* Condition extract or recurse test */ + case OP_SCOND: + if (ecode[LINK_SIZE+1] == OP_RREF) /* Recursion test */ + { + offset = GET2(ecode, LINK_SIZE + 2); /* Recursion group number*/ + condition = md->recursive != NULL && + (offset == RREF_ANY || offset == md->recursive->group_num); + ecode += condition? 3 : GET(ecode, 1); + } + + else if (ecode[LINK_SIZE+1] == OP_CREF) /* Group used test */ { offset = GET2(ecode, LINK_SIZE+2) << 1; /* Doubled ref number */ - condition = (offset == CREF_RECURSE * 2)? - (md->recursive != NULL) : - (offset < offset_top && md->offset_vector[offset] >= 0); - RMATCH(rrc, eptr, ecode + (condition? - (LINK_SIZE + 4) : (LINK_SIZE + 1 + GET(ecode, 1))), - offset_top, md, ims, eptrb, match_isgroup); - RRETURN(rrc); + condition = offset < offset_top && md->offset_vector[offset] >= 0; + ecode += condition? 3 : GET(ecode, 1); + } + + else if (ecode[LINK_SIZE+1] == OP_DEF) /* DEFINE - always false */ + { + condition = FALSE; + ecode += GET(ecode, 1); } /* The condition is an assertion. Call match() to evaluate it - setting - the final argument TRUE causes it to stop at the end of an assertion. */ + the final argument match_condassert causes it to stop at the end of an + assertion. */ else { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, - match_condassert | match_isgroup); + match_condassert); if (rrc == MATCH_MATCH) { - ecode += 1 + LINK_SIZE + GET(ecode, LINK_SIZE+2); + condition = TRUE; + ecode += 1 + LINK_SIZE + GET(ecode, LINK_SIZE + 2); while (*ecode == OP_ALT) ecode += GET(ecode, 1); } else if (rrc != MATCH_NOMATCH) { RRETURN(rrc); /* Need braces because of following else */ } - else ecode += GET(ecode, 1); - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, - match_isgroup); - RRETURN(rrc); + else + { + condition = FALSE; + ecode += GET(ecode, 1); + } } - /* Control never reaches here */ - /* Skip over conditional reference or large extraction number data if - encountered. */ + /* We are now at the branch that is to be obeyed. As there is only one, + we can use tail recursion to avoid using another stack frame. If the second + alternative doesn't exist, we can just plough on. */ - case OP_CREF: - case OP_BRANUMBER: - ecode += 3; + if (condition || *ecode == OP_ALT) + { + ecode += 1 + LINK_SIZE; + flags = match_tail_recursed | ((op == OP_SCOND)? match_cbegroup : 0); + goto TAIL_RECURSE; + } + else + { + ecode += 1 + LINK_SIZE; + } break; - /* End of the pattern. If we are in a recursion, we should restore the - offsets appropriately and continue from after the call. */ + + /* End of the pattern. If we are in a top-level recursion, we should + restore the offsets appropriately and continue from after the call. */ case OP_END: if (md->recursive != NULL && md->recursive->group_num == 0) @@ -745,8 +791,7 @@ for (;;) case OP_ASSERTBACK: do { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, - match_isgroup); + RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, 0); if (rrc == MATCH_MATCH) break; if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode, 1); @@ -772,8 +817,7 @@ for (;;) case OP_ASSERTBACK_NOT: do { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, - match_isgroup); + RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, 0); if (rrc == MATCH_MATCH) RRETURN(MATCH_NOMATCH); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode,1); @@ -794,8 +838,8 @@ for (;;) #ifdef SUPPORT_UTF8 if (utf8) { - c = GET(ecode,1); - for (i = 0; i < c; i++) + i = GET(ecode, 1); + while (i-- > 0) { eptr--; if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); @@ -808,7 +852,7 @@ for (;;) /* No UTF-8 support, or not in UTF-8 mode: count is byte count */ { - eptr -= GET(ecode,1); + eptr -= GET(ecode, 1); if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); } @@ -865,13 +909,8 @@ for (;;) case OP_RECURSE: { callpat = md->start_code + GET(ecode, 1); - new_recursive.group_num = *callpat - OP_BRA; - - /* For extended extraction brackets (large number), we have to fish out - the number from a dummy opcode at the start. */ - - if (new_recursive.group_num > EXTRACT_BASIC_MAX) - new_recursive.group_num = GET2(callpat, 2+LINK_SIZE); + new_recursive.group_num = (callpat == md->start_code)? 0 : + GET2(callpat, 1 + LINK_SIZE); /* Add to "recursing stack" */ @@ -904,10 +943,11 @@ for (;;) restore the offset and recursion data. */ DPRINTF(("Recursing into group %d\n", new_recursive.group_num)); + flags = (*callpat >= OP_SBRA)? match_cbegroup : 0; do { - RMATCH(rrc, eptr, callpat + 1 + LINK_SIZE, offset_top, md, ims, - eptrb, match_isgroup); + RMATCH(rrc, eptr, callpat + _pcre_OP_lengths[*callpat], offset_top, + md, ims, eptrb, flags); if (rrc == MATCH_MATCH) { DPRINTF(("Recursion matched\n")); @@ -945,71 +985,72 @@ for (;;) the end of a normal bracket, leaving the subject pointer. */ case OP_ONCE: - { - prev = ecode; - saved_eptr = eptr; + prev = ecode; + saved_eptr = eptr; - do - { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, - eptrb, match_isgroup); - if (rrc == MATCH_MATCH) break; - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - ecode += GET(ecode,1); - } - while (*ecode == OP_ALT); + do + { + RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, + eptrb, 0); + if (rrc == MATCH_MATCH) break; + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + ecode += GET(ecode,1); + } + while (*ecode == OP_ALT); - /* If hit the end of the group (which could be repeated), fail */ + /* If hit the end of the group (which could be repeated), fail */ - if (*ecode != OP_ONCE && *ecode != OP_ALT) RRETURN(MATCH_NOMATCH); + if (*ecode != OP_ONCE && *ecode != OP_ALT) RRETURN(MATCH_NOMATCH); - /* Continue as from after the assertion, updating the offsets high water - mark, since extracts may have been taken. */ + /* Continue as from after the assertion, updating the offsets high water + mark, since extracts may have been taken. */ - do ecode += GET(ecode,1); while (*ecode == OP_ALT); + do ecode += GET(ecode, 1); while (*ecode == OP_ALT); - offset_top = md->end_offset_top; - eptr = md->end_match_ptr; + offset_top = md->end_offset_top; + eptr = md->end_match_ptr; - /* For a non-repeating ket, just continue at this level. This also - happens for a repeating ket if no characters were matched in the group. - This is the forcible breaking of infinite loops as implemented in Perl - 5.005. If there is an options reset, it will get obeyed in the normal - course of events. */ + /* For a non-repeating ket, just continue at this level. This also + happens for a repeating ket if no characters were matched in the group. + This is the forcible breaking of infinite loops as implemented in Perl + 5.005. If there is an options reset, it will get obeyed in the normal + course of events. */ - if (*ecode == OP_KET || eptr == saved_eptr) - { - ecode += 1+LINK_SIZE; - break; - } + if (*ecode == OP_KET || eptr == saved_eptr) + { + ecode += 1+LINK_SIZE; + break; + } - /* The repeating kets try the rest of the pattern or restart from the - preceding bracket, in the appropriate order. We need to reset any options - that changed within the bracket before re-running it, so check the next - opcode. */ + /* The repeating kets try the rest of the pattern or restart from the + preceding bracket, in the appropriate order. The second "call" of match() + uses tail recursion, to avoid using another stack frame. We need to reset + any options that changed within the bracket before re-running it, so + check the next opcode. */ - if (ecode[1+LINK_SIZE] == OP_OPT) - { - ims = (ims & ~PCRE_IMS) | ecode[4]; - DPRINTF(("ims set to %02lx at group repeat\n", ims)); - } + if (ecode[1+LINK_SIZE] == OP_OPT) + { + ims = (ims & ~PCRE_IMS) | ecode[4]; + DPRINTF(("ims set to %02lx at group repeat\n", ims)); + } - if (*ecode == OP_KETRMIN) - { - RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, 0); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - } - else /* OP_KETRMAX */ - { - RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - } + if (*ecode == OP_KETRMIN) + { + RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, 0); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + ecode = prev; + flags = match_tail_recursed; + goto TAIL_RECURSE; + } + else /* OP_KETRMAX */ + { + RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_cbegroup); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + ecode += 1 + LINK_SIZE; + flags = match_tail_recursed; + goto TAIL_RECURSE; } - RRETURN(MATCH_NOMATCH); + /* Control never gets here */ /* An alternation is the end of a branch; scan along to find the end of the bracketed group and go to there. */ @@ -1027,140 +1068,137 @@ for (;;) case OP_BRAZERO: { next = ecode+1; - RMATCH(rrc, eptr, next, offset_top, md, ims, eptrb, match_isgroup); + RMATCH(rrc, eptr, next, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); do next += GET(next,1); while (*next == OP_ALT); - ecode = next + 1+LINK_SIZE; + ecode = next + 1 + LINK_SIZE; } break; case OP_BRAMINZERO: { next = ecode+1; - do next += GET(next,1); while (*next == OP_ALT); - RMATCH(rrc, eptr, next + 1+LINK_SIZE, offset_top, md, ims, eptrb, - match_isgroup); + do next += GET(next, 1); while (*next == OP_ALT); + RMATCH(rrc, eptr, next + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode++; } break; - /* End of a group, repeated or non-repeating. If we are at the end of - an assertion "group", stop matching and return MATCH_MATCH, but record the - current high water mark for use by positive assertions. Do this also - for the "once" (not-backup up) groups. */ + /* End of a group, repeated or non-repeating. */ case OP_KET: case OP_KETRMIN: case OP_KETRMAX: - { - prev = ecode - GET(ecode, 1); - saved_eptr = eptrb->epb_saved_eptr; + prev = ecode - GET(ecode, 1); - /* Back up the stack of bracket start pointers. */ + /* If this was a group that remembered the subject start, in order to break + infinite repeats of empty string matches, retrieve the subject start from + the chain. Otherwise, set it NULL. */ - eptrb = eptrb->epb_prev; - - if (*prev == OP_ASSERT || *prev == OP_ASSERT_NOT || - *prev == OP_ASSERTBACK || *prev == OP_ASSERTBACK_NOT || - *prev == OP_ONCE) - { - md->end_match_ptr = eptr; /* For ONCE */ - md->end_offset_top = offset_top; - RRETURN(MATCH_MATCH); - } + if (*prev >= OP_SBRA) + { + saved_eptr = eptrb->epb_saved_eptr; /* Value at start of group */ + eptrb = eptrb->epb_prev; /* Backup to previous group */ + } + else saved_eptr = NULL; - /* In all other cases except a conditional group we have to check the - group number back at the start and if necessary complete handling an - extraction by setting the offsets and bumping the high water mark. */ + /* If we are at the end of an assertion group, stop matching and return + MATCH_MATCH, but record the current high water mark for use by positive + assertions. Do this also for the "once" (atomic) groups. */ - if (*prev != OP_COND) - { - number = *prev - OP_BRA; + if (*prev == OP_ASSERT || *prev == OP_ASSERT_NOT || + *prev == OP_ASSERTBACK || *prev == OP_ASSERTBACK_NOT || + *prev == OP_ONCE) + { + md->end_match_ptr = eptr; /* For ONCE */ + md->end_offset_top = offset_top; + RRETURN(MATCH_MATCH); + } - /* For extended extraction brackets (large number), we have to fish out - the number from a dummy opcode at the start. */ + /* For capturing groups we have to check the group number back at the start + and if necessary complete handling an extraction by setting the offsets and + bumping the high water mark. Note that whole-pattern recursion is coded as + a recurse into group 0, so it won't be picked up here. Instead, we catch it + when the OP_END is reached. Other recursion is handled here. */ - if (number > EXTRACT_BASIC_MAX) number = GET2(prev, 2+LINK_SIZE); - offset = number << 1; + if (*prev == OP_CBRA || *prev == OP_SCBRA) + { + number = GET2(prev, 1+LINK_SIZE); + offset = number << 1; #ifdef DEBUG - printf("end bracket %d", number); - printf("\n"); + printf("end bracket %d", number); + printf("\n"); #endif - /* Test for a numbered group. This includes groups called as a result - of recursion. Note that whole-pattern recursion is coded as a recurse - into group 0, so it won't be picked up here. Instead, we catch it when - the OP_END is reached. */ - - if (number > 0) - { - md->capture_last = number; - if (offset >= md->offset_max) md->offset_overflow = TRUE; else - { - md->offset_vector[offset] = - md->offset_vector[md->offset_end - number]; - md->offset_vector[offset+1] = eptr - md->start_subject; - if (offset_top <= offset) offset_top = offset + 2; - } - - /* Handle a recursively called group. Restore the offsets - appropriately and continue from after the call. */ - - if (md->recursive != NULL && md->recursive->group_num == number) - { - recursion_info *rec = md->recursive; - DPRINTF(("Recursion (%d) succeeded - continuing\n", number)); - md->recursive = rec->prevrec; - md->start_match = rec->save_start; - memcpy(md->offset_vector, rec->offset_save, - rec->saved_max * sizeof(int)); - ecode = rec->after_call; - ims = original_ims; - break; - } - } + md->capture_last = number; + if (offset >= md->offset_max) md->offset_overflow = TRUE; else + { + md->offset_vector[offset] = + md->offset_vector[md->offset_end - number]; + md->offset_vector[offset+1] = eptr - md->start_subject; + if (offset_top <= offset) offset_top = offset + 2; } - /* Reset the value of the ims flags, in case they got changed during - the group. */ - - ims = original_ims; - DPRINTF(("ims reset to %02lx\n", ims)); + /* Handle a recursively called group. Restore the offsets + appropriately and continue from after the call. */ - /* For a non-repeating ket, just continue at this level. This also - happens for a repeating ket if no characters were matched in the group. - This is the forcible breaking of infinite loops as implemented in Perl - 5.005. If there is an options reset, it will get obeyed in the normal - course of events. */ - - if (*ecode == OP_KET || eptr == saved_eptr) + if (md->recursive != NULL && md->recursive->group_num == number) { - ecode += 1 + LINK_SIZE; + recursion_info *rec = md->recursive; + DPRINTF(("Recursion (%d) succeeded - continuing\n", number)); + md->recursive = rec->prevrec; + md->start_match = rec->save_start; + memcpy(md->offset_vector, rec->offset_save, + rec->saved_max * sizeof(int)); + ecode = rec->after_call; + ims = original_ims; break; } + } - /* The repeating kets try the rest of the pattern or restart from the - preceding bracket, in the appropriate order. */ + /* For both capturing and non-capturing groups, reset the value of the ims + flags, in case they got changed during the group. */ - if (*ecode == OP_KETRMIN) - { - RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - } - else /* OP_KETRMAX */ - { - RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - } + ims = original_ims; + DPRINTF(("ims reset to %02lx\n", ims)); + + /* For a non-repeating ket, just continue at this level. This also + happens for a repeating ket if no characters were matched in the group. + This is the forcible breaking of infinite loops as implemented in Perl + 5.005. If there is an options reset, it will get obeyed in the normal + course of events. */ + + if (*ecode == OP_KET || eptr == saved_eptr) + { + ecode += 1 + LINK_SIZE; + break; } - RRETURN(MATCH_NOMATCH); + /* The repeating kets try the rest of the pattern or restart from the + preceding bracket, in the appropriate order. In the second case, we can use + tail recursion to avoid using another stack frame. */ + + flags = (*prev >= OP_SBRA)? match_cbegroup : 0; + + if (*ecode == OP_KETRMIN) + { + RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + ecode = prev; + flags |= match_tail_recursed; + goto TAIL_RECURSE; + } + else /* OP_KETRMAX */ + { + RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, flags); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + ecode += 1 + LINK_SIZE; + flags = match_tail_recursed; + goto TAIL_RECURSE; + } + /* Control never gets here */ /* Start of subject unless notbol, or after internal newline if multiline */ @@ -1168,7 +1206,8 @@ for (;;) if (md->notbol && eptr == md->start_subject) RRETURN(MATCH_NOMATCH); if ((ims & PCRE_MULTILINE) != 0) { - if (eptr != md->start_subject && eptr[-1] != NEWLINE) + if (eptr != md->start_subject && + (eptr == md->end_subject || !WAS_NEWLINE(eptr))) RRETURN(MATCH_NOMATCH); ecode++; break; @@ -1196,7 +1235,7 @@ for (;;) if ((ims & PCRE_MULTILINE) != 0) { if (eptr < md->end_subject) - { if (*eptr != NEWLINE) RRETURN(MATCH_NOMATCH); } + { if (!IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); } else { if (md->noteol) RRETURN(MATCH_NOMATCH); } ecode++; @@ -1207,14 +1246,14 @@ for (;;) if (md->noteol) RRETURN(MATCH_NOMATCH); if (!md->endonly) { - if (eptr < md->end_subject - 1 || - (eptr == md->end_subject - 1 && *eptr != NEWLINE)) + if (eptr != md->end_subject && + (!IS_NEWLINE(eptr) || eptr != md->end_subject - md->nllen)) RRETURN(MATCH_NOMATCH); ecode++; break; } } - /* ... else fall through */ + /* ... else fall through for endonly */ /* End of subject assertion (\z) */ @@ -1226,8 +1265,9 @@ for (;;) /* End of subject or ending \n assertion (\Z) */ case OP_EODN: - if (eptr < md->end_subject - 1 || - (eptr == md->end_subject - 1 && *eptr != NEWLINE)) RRETURN(MATCH_NOMATCH); + if (eptr != md->end_subject && + (!IS_NEWLINE(eptr) || eptr != md->end_subject - md->nllen)) + RRETURN(MATCH_NOMATCH); ecode++; break; @@ -1280,13 +1320,13 @@ for (;;) /* Match a single character type; inline for speed */ case OP_ANY: - if ((ims & PCRE_DOTALL) == 0 && eptr < md->end_subject && *eptr == NEWLINE) - RRETURN(MATCH_NOMATCH); + if ((ims & PCRE_DOTALL) == 0) + { + if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); + } if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); -#ifdef SUPPORT_UTF8 if (utf8) while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; -#endif ecode++; break; @@ -1376,6 +1416,26 @@ for (;;) ecode++; break; + case OP_ANYNL: + if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); + GETCHARINCTEST(c, eptr); + switch(c) + { + default: RRETURN(MATCH_NOMATCH); + case 0x000d: + if (eptr < md->end_subject && *eptr == 0x0a) eptr++; + break; + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + break; + } + ecode++; + break; + #ifdef SUPPORT_UCP /* Check the next character by Unicode property. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ @@ -1418,7 +1478,6 @@ for (;;) default: RRETURN(PCRE_ERROR_INTERNAL); - break; } ecode += 3; @@ -1888,7 +1947,7 @@ for (;;) else { - int dc; + unsigned int dc; GETCHARINC(dc, eptr); ecode += length; @@ -1915,13 +1974,17 @@ for (;;) } break; - /* Match a single character repeatedly; different opcodes share code. */ + /* Match a single character repeatedly. */ case OP_EXACT: min = max = GET2(ecode, 1); ecode += 3; goto REPEATCHAR; + case OP_POSUPTO: + possessive = TRUE; + /* Fall through */ + case OP_UPTO: case OP_MINUPTO: min = 0; @@ -1930,6 +1993,27 @@ for (;;) ecode += 3; goto REPEATCHAR; + case OP_POSSTAR: + possessive = TRUE; + min = 0; + max = INT_MAX; + ecode++; + goto REPEATCHAR; + + case OP_POSPLUS: + possessive = TRUE; + min = 1; + max = INT_MAX; + ecode++; + goto REPEATCHAR; + + case OP_POSQUERY: + possessive = TRUE; + min = 0; + max = 1; + ecode++; + goto REPEATCHAR; + case OP_STAR: case OP_MINSTAR: case OP_PLUS: @@ -1965,10 +2049,9 @@ for (;;) uschar occhars[8]; #ifdef SUPPORT_UCP - int othercase; + unsigned int othercase; if ((ims & PCRE_CASELESS) != 0 && - (othercase = _pcre_ucp_othercase(fc)) >= 0 && - othercase >= 0) + (othercase = _pcre_ucp_othercase(fc)) != NOTACHAR) oclength = _pcre_ord2utf8(othercase, occhars); #endif /* SUPPORT_UCP */ @@ -2004,7 +2087,8 @@ for (;;) } /* Control never gets here */ } - else + + else /* Maximize */ { pp = eptr; for (i = min; i < max; i++) @@ -2018,6 +2102,8 @@ for (;;) eptr += oclength; } } + + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2072,7 +2158,7 @@ for (;;) } /* Control never gets here */ } - else + else /* Maximize */ { pp = eptr; for (i = min; i < max; i++) @@ -2080,6 +2166,7 @@ for (;;) if (eptr >= md->end_subject || fc != md->lcc[*eptr]) break; eptr++; } + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2108,7 +2195,7 @@ for (;;) } /* Control never gets here */ } - else + else /* Maximize */ { pp = eptr; for (i = min; i < max; i++) @@ -2116,6 +2203,7 @@ for (;;) if (eptr >= md->end_subject || fc != *eptr) break; eptr++; } + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2168,6 +2256,34 @@ for (;;) ecode += 3; goto REPEATNOTCHAR; + case OP_NOTPOSSTAR: + possessive = TRUE; + min = 0; + max = INT_MAX; + ecode++; + goto REPEATNOTCHAR; + + case OP_NOTPOSPLUS: + possessive = TRUE; + min = 1; + max = INT_MAX; + ecode++; + goto REPEATNOTCHAR; + + case OP_NOTPOSQUERY: + possessive = TRUE; + min = 0; + max = 1; + ecode++; + goto REPEATNOTCHAR; + + case OP_NOTPOSUPTO: + possessive = TRUE; + min = 0; + max = GET2(ecode, 1); + ecode += 3; + goto REPEATNOTCHAR; + case OP_NOTSTAR: case OP_NOTMINSTAR: case OP_NOTPLUS: @@ -2207,7 +2323,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (i = 1; i <= min; i++) { GETCHARINC(d, eptr); @@ -2232,7 +2348,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2268,7 +2384,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (i = min; i < max; i++) { int len = 1; @@ -2278,7 +2394,8 @@ for (;;) if (fc == d) break; eptr += len; } - for(;;) + if (possessive) continue; + for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); @@ -2295,6 +2412,7 @@ for (;;) if (eptr >= md->end_subject || fc == md->lcc[*eptr]) break; eptr++; } + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2316,7 +2434,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (i = 1; i <= min; i++) { GETCHARINC(d, eptr); @@ -2339,7 +2457,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2374,7 +2492,7 @@ for (;;) /* UTF-8 mode */ if (utf8) { - register int d; + register unsigned int d; for (i = min; i < max; i++) { int len = 1; @@ -2383,6 +2501,7 @@ for (;;) if (fc == d) break; eptr += len; } + if (possessive) continue; for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2400,6 +2519,7 @@ for (;;) if (eptr >= md->end_subject || fc == *eptr) break; eptr++; } + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -2431,6 +2551,34 @@ for (;;) ecode += 3; goto REPEATTYPE; + case OP_TYPEPOSSTAR: + possessive = TRUE; + min = 0; + max = INT_MAX; + ecode++; + goto REPEATTYPE; + + case OP_TYPEPOSPLUS: + possessive = TRUE; + min = 1; + max = INT_MAX; + ecode++; + goto REPEATTYPE; + + case OP_TYPEPOSQUERY: + possessive = TRUE; + min = 0; + max = 1; + ecode++; + goto REPEATTYPE; + + case OP_TYPEPOSUPTO: + possessive = TRUE; + min = 0; + max = GET2(ecode, 1); + ecode += 3; + goto REPEATTYPE; + case OP_TYPESTAR: case OP_TYPEMINSTAR: case OP_TYPEPLUS: @@ -2533,7 +2681,6 @@ for (;;) default: RRETURN(PCRE_ERROR_INTERNAL); - break; } } @@ -2573,8 +2720,9 @@ for (;;) for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || - (*eptr++ == NEWLINE && (ims & PCRE_DOTALL) == 0)) + ((ims & PCRE_DOTALL) == 0 && IS_NEWLINE(eptr))) RRETURN(MATCH_NOMATCH); + eptr++; while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } break; @@ -2583,6 +2731,28 @@ for (;;) eptr += min; break; + case OP_ANYNL: + for (i = 1; i <= min; i++) + { + if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); + GETCHARINC(c, eptr); + switch(c) + { + default: RRETURN(MATCH_NOMATCH); + case 0x000d: + if (eptr < md->end_subject && *eptr == 0x0a) eptr++; + break; + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + break; + } + } + break; + case OP_NOT_DIGIT: for (i = 1; i <= min; i++) { @@ -2651,7 +2821,8 @@ for (;;) #endif /* SUPPORT_UTF8 */ /* Code for the non-UTF-8 case for minimum matching of operators other - than OP_PROP and OP_NOTPROP. */ + than OP_PROP and OP_NOTPROP. We can assume that there are the minimum + number of bytes present, as this was tested above. */ switch(ctype) { @@ -2659,7 +2830,10 @@ for (;;) if ((ims & PCRE_DOTALL) == 0) { for (i = 1; i <= min; i++) - if (*eptr++ == NEWLINE) RRETURN(MATCH_NOMATCH); + { + if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); + eptr++; + } } else eptr += min; break; @@ -2668,6 +2842,28 @@ for (;;) eptr += min; break; + /* Because of the CRLF case, we can't assume the minimum number of + bytes are present in this case. */ + + case OP_ANYNL: + for (i = 1; i <= min; i++) + { + if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); + switch(*eptr++) + { + default: RRETURN(MATCH_NOMATCH); + case 0x000d: + if (eptr < md->end_subject && *eptr == 0x0a) eptr++; + break; + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + break; + } + } + break; + case OP_NOT_DIGIT: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); @@ -2729,7 +2925,7 @@ for (;;) GETCHARINC(c, eptr); if (prop_fail_result) RRETURN(MATCH_NOMATCH); } - break; + /* Control never gets here */ case PT_LAMP: for (fi = min;; fi++) @@ -2744,7 +2940,7 @@ for (;;) prop_chartype == ucp_Lt) == prop_fail_result) RRETURN(MATCH_NOMATCH); } - break; + /* Control never gets here */ case PT_GC: for (fi = min;; fi++) @@ -2757,7 +2953,7 @@ for (;;) if ((prop_category == prop_value) == prop_fail_result) RRETURN(MATCH_NOMATCH); } - break; + /* Control never gets here */ case PT_PC: for (fi = min;; fi++) @@ -2770,7 +2966,7 @@ for (;;) if ((prop_chartype == prop_value) == prop_fail_result) RRETURN(MATCH_NOMATCH); } - break; + /* Control never gets here */ case PT_SC: for (fi = min;; fi++) @@ -2783,11 +2979,10 @@ for (;;) if ((prop_script == prop_value) == prop_fail_result) RRETURN(MATCH_NOMATCH); } - break; + /* Control never gets here */ default: RRETURN(PCRE_ERROR_INTERNAL); - break; } } @@ -2829,18 +3024,37 @@ for (;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); + if (fi >= max || eptr >= md->end_subject || + (ctype == OP_ANY && (ims & PCRE_DOTALL) == 0 && + IS_NEWLINE(eptr))) + RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); switch(ctype) { - case OP_ANY: - if ((ims & PCRE_DOTALL) == 0 && c == NEWLINE) RRETURN(MATCH_NOMATCH); + case OP_ANY: /* This is the DOTALL case */ break; case OP_ANYBYTE: break; + case OP_ANYNL: + switch(c) + { + default: RRETURN(MATCH_NOMATCH); + case 0x000d: + if (eptr < md->end_subject && *eptr == 0x0a) eptr++; + break; + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + case 0x2028: + case 0x2029: + break; + } + break; + case OP_NOT_DIGIT: if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); @@ -2884,17 +3098,34 @@ for (;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); + if (fi >= max || eptr >= md->end_subject || + ((ims & PCRE_DOTALL) == 0 && IS_NEWLINE(eptr))) + RRETURN(MATCH_NOMATCH); + c = *eptr++; switch(ctype) { - case OP_ANY: - if ((ims & PCRE_DOTALL) == 0 && c == NEWLINE) RRETURN(MATCH_NOMATCH); + case OP_ANY: /* This is the DOTALL case */ break; case OP_ANYBYTE: break; + case OP_ANYNL: + switch(c) + { + default: RRETURN(MATCH_NOMATCH); + case 0x000d: + if (eptr < md->end_subject && *eptr == 0x0a) eptr++; + break; + case 0x000a: + case 0x000b: + case 0x000c: + case 0x0085: + break; + } + break; + case OP_NOT_DIGIT: if ((md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); break; @@ -2927,7 +3158,7 @@ for (;;) /* Control never gets here */ } - /* If maximizing it is worth using inline code for speed, doing the type + /* If maximizing, it is worth using inline code for speed, doing the type test once at the start (i.e. keep it out of the loop). Again, keep the UTF-8 and UCP stuff separate. */ @@ -3008,6 +3239,7 @@ for (;;) /* eptr is now past the end of the maximum run */ + if (possessive) continue; for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -3043,6 +3275,7 @@ for (;;) /* eptr is now past the end of the maximum run */ + if (possessive) continue; for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -3075,9 +3308,9 @@ for (;;) { case OP_ANY: - /* Special code is required for UTF8, but when the maximum is unlimited - we don't need it, so we repeat the non-UTF8 code. This is probably - worth it, because .* is quite a common idiom. */ + /* Special code is required for UTF8, but when the maximum is + unlimited we don't need it, so we repeat the non-UTF8 code. This is + probably worth it, because .* is quite a common idiom. */ if (max < INT_MAX) { @@ -3085,7 +3318,7 @@ for (;;) { for (i = min; i < max; i++) { - if (eptr >= md->end_subject || *eptr == NEWLINE) break; + if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; eptr++; while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } @@ -3094,6 +3327,7 @@ for (;;) { for (i = min; i < max; i++) { + if (eptr >= md->end_subject) break; eptr++; while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } @@ -3108,7 +3342,7 @@ for (;;) { for (i = min; i < max; i++) { - if (eptr >= md->end_subject || *eptr == NEWLINE) break; + if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; eptr++; } break; @@ -3116,7 +3350,8 @@ for (;;) else { c = max - min; - if (c > md->end_subject - eptr) c = md->end_subject - eptr; + if (c > (unsigned int)(md->end_subject - eptr)) + c = md->end_subject - eptr; eptr += c; } } @@ -3126,10 +3361,32 @@ for (;;) case OP_ANYBYTE: c = max - min; - if (c > md->end_subject - eptr) c = md->end_subject - eptr; + if (c > (unsigned int)(md->end_subject - eptr)) + c = md->end_subject - eptr; eptr += c; break; + case OP_ANYNL: + for (i = min; i < max; i++) + { + int len = 1; + if (eptr >= md->end_subject) break; + GETCHARLEN(c, eptr, len); + if (c == 0x000d) + { + if (++eptr >= md->end_subject) break; + if (*eptr == 0x000a) eptr++; + } + else + { + if (c != 0x000a && c != 0x000b && c != 0x000c && + c != 0x0085 && c != 0x2028 && c != 0x2029) + break; + eptr += len; + } + } + break; + case OP_NOT_DIGIT: for (i = min; i < max; i++) { @@ -3202,6 +3459,7 @@ for (;;) /* eptr is now past the end of the maximum run */ + if (possessive) continue; for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -3222,7 +3480,7 @@ for (;;) { for (i = min; i < max; i++) { - if (eptr >= md->end_subject || *eptr == NEWLINE) break; + if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; eptr++; } break; @@ -3231,10 +3489,30 @@ for (;;) case OP_ANYBYTE: c = max - min; - if (c > md->end_subject - eptr) c = md->end_subject - eptr; + if (c > (unsigned int)(md->end_subject - eptr)) + c = md->end_subject - eptr; eptr += c; break; + case OP_ANYNL: + for (i = min; i < max; i++) + { + if (eptr >= md->end_subject) break; + c = *eptr; + if (c == 0x000d) + { + if (++eptr >= md->end_subject) break; + if (*eptr == 0x000a) eptr++; + } + else + { + if (c != 0x000a && c != 0x000b && c != 0x000c && c != 0x0085) + break; + eptr++; + } + } + break; + case OP_NOT_DIGIT: for (i = min; i < max; i++) { @@ -3295,6 +3573,7 @@ for (;;) /* eptr is now past the end of the maximum run */ + if (possessive) continue; while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); @@ -3309,14 +3588,12 @@ for (;;) } /* Control never gets here */ - /* There's been some horrible disaster. Since all codes > OP_BRA are - for capturing brackets, and there shouldn't be any gaps between 0 and - OP_BRA, arrival here can only mean there is something seriously wrong - in the code above or the OP_xxx definitions. */ + /* There's been some horrible disaster. Arrival here can only mean there is + something seriously wrong in the code above or the OP_xxx definitions. */ default: DPRINTF(("Unknown opcode %d\n", *ecode)); - RRETURN(PCRE_ERROR_UNKNOWN_NODE); + RRETURN(PCRE_ERROR_UNKNOWN_OPCODE); } /* Do not stick any code in here without much thought; it is assumed @@ -3354,7 +3631,6 @@ Undefine all the macros that were define #undef cur_is_word #undef condition -#undef minimize #undef prev_is_word #undef original_ims @@ -3419,19 +3695,23 @@ int rc, resetcount, ocount; int first_byte = -1; int req_byte = -1; int req_byte2 = -1; -unsigned long int ims = 0; +int newline; +unsigned long int ims; BOOL using_temporary_offsets = FALSE; BOOL anchored; BOOL startline; BOOL firstline; BOOL first_byte_caseless = FALSE; BOOL req_byte_caseless = FALSE; +BOOL utf8; match_data match_block; +match_data *md = &match_block; const uschar *tables; const uschar *start_bits = NULL; USPTR start_match = (USPTR)subject + start_offset; USPTR end_subject; USPTR req_byte_ptr = start_match - 1; +eptrblock eptrchain[EPTR_WORK_SIZE]; pcre_study_data internal_study; const pcre_study_data *study; @@ -3451,9 +3731,9 @@ if (offsetcount < 0) return PCRE_ERROR_B the default values. */ study = NULL; -match_block.match_limit = MATCH_LIMIT; -match_block.match_limit_recursion = MATCH_LIMIT_RECURSION; -match_block.callout_data = NULL; +md->match_limit = MATCH_LIMIT; +md->match_limit_recursion = MATCH_LIMIT_RECURSION; +md->callout_data = NULL; /* The table pointer is always in native byte order. */ @@ -3465,11 +3745,11 @@ if (extra_data != NULL) if ((flags & PCRE_EXTRA_STUDY_DATA) != 0) study = (const pcre_study_data *)extra_data->study_data; if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) - match_block.match_limit = extra_data->match_limit; + md->match_limit = extra_data->match_limit; if ((flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) != 0) - match_block.match_limit_recursion = extra_data->match_limit_recursion; + md->match_limit_recursion = extra_data->match_limit_recursion; if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0) - match_block.callout_data = extra_data->callout_data; + md->callout_data = extra_data->callout_data; if ((flags & PCRE_EXTRA_TABLES) != 0) tables = extra_data->tables; } @@ -3499,39 +3779,75 @@ firstline = (re->options & PCRE_FIRSTLIN /* The code starts after the real_pcre block and the capture name table. */ -match_block.start_code = (const uschar *)external_re + re->name_table_offset + +md->start_code = (const uschar *)external_re + re->name_table_offset + re->name_count * re->name_entry_size; -match_block.start_subject = (USPTR)subject; -match_block.start_offset = start_offset; -match_block.end_subject = match_block.start_subject + length; -end_subject = match_block.end_subject; - -match_block.endonly = (re->options & PCRE_DOLLAR_ENDONLY) != 0; -match_block.utf8 = (re->options & PCRE_UTF8) != 0; - -match_block.notbol = (options & PCRE_NOTBOL) != 0; -match_block.noteol = (options & PCRE_NOTEOL) != 0; -match_block.notempty = (options & PCRE_NOTEMPTY) != 0; -match_block.partial = (options & PCRE_PARTIAL) != 0; -match_block.hitend = FALSE; +md->start_subject = (USPTR)subject; +md->start_offset = start_offset; +md->end_subject = md->start_subject + length; +end_subject = md->end_subject; + +md->endonly = (re->options & PCRE_DOLLAR_ENDONLY) != 0; +utf8 = md->utf8 = (re->options & PCRE_UTF8) != 0; + +md->notbol = (options & PCRE_NOTBOL) != 0; +md->noteol = (options & PCRE_NOTEOL) != 0; +md->notempty = (options & PCRE_NOTEMPTY) != 0; +md->partial = (options & PCRE_PARTIAL) != 0; +md->hitend = FALSE; + +md->recursive = NULL; /* No recursion at top level */ +md->eptrchain = eptrchain; /* Make workspace generally available */ -match_block.recursive = NULL; /* No recursion at top level */ +md->lcc = tables + lcc_offset; +md->ctypes = tables + ctypes_offset; -match_block.lcc = tables + lcc_offset; -match_block.ctypes = tables + ctypes_offset; +/* Handle different types of newline. The two bits give four cases. If nothing +is set at run time, whatever was used at compile time applies. */ + +switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : options) & + PCRE_NEWLINE_BITS) + { + case 0: newline = NEWLINE; break; /* Compile-time default */ + case PCRE_NEWLINE_CR: newline = '\r'; break; + case PCRE_NEWLINE_LF: newline = '\n'; break; + case PCRE_NEWLINE_CR+ + PCRE_NEWLINE_LF: newline = ('\r' << 8) | '\n'; break; + case PCRE_NEWLINE_ANY: newline = -1; break; + default: return PCRE_ERROR_BADNEWLINE; + } + +if (newline < 0) + { + md->nltype = NLTYPE_ANY; + } +else + { + md->nltype = NLTYPE_FIXED; + if (newline > 255) + { + md->nllen = 2; + md->nl[0] = (newline >> 8) & 255; + md->nl[1] = newline & 255; + } + else + { + md->nllen = 1; + md->nl[0] = newline; + } + } /* Partial matching is supported only for a restricted set of regexes at the moment. */ -if (match_block.partial && (re->options & PCRE_NOPARTIAL) != 0) +if (md->partial && (re->options & PCRE_NOPARTIAL) != 0) return PCRE_ERROR_BADPARTIAL; /* Check a UTF-8 string if required. Unfortunately there's no way of passing back the character offset. */ #ifdef SUPPORT_UTF8 -if (match_block.utf8 && (options & PCRE_NO_UTF8_CHECK) == 0) +if (utf8 && (options & PCRE_NO_UTF8_CHECK) == 0) { if (_pcre_valid_utf8((uschar *)subject, length) >= 0) return PCRE_ERROR_BADUTF8; @@ -3563,17 +3879,17 @@ ocount = offsetcount - (offsetcount % 3) if (re->top_backref > 0 && re->top_backref >= ocount/3) { ocount = re->top_backref * 3 + 3; - match_block.offset_vector = (int *)(pcre_malloc)(ocount * sizeof(int)); - if (match_block.offset_vector == NULL) return PCRE_ERROR_NOMEMORY; + md->offset_vector = (int *)(pcre_malloc)(ocount * sizeof(int)); + if (md->offset_vector == NULL) return PCRE_ERROR_NOMEMORY; using_temporary_offsets = TRUE; DPRINTF(("Got memory to hold back references\n")); } -else match_block.offset_vector = offsets; +else md->offset_vector = offsets; -match_block.offset_end = ocount; -match_block.offset_max = (2*ocount)/3; -match_block.offset_overflow = FALSE; -match_block.capture_last = -1; +md->offset_end = ocount; +md->offset_max = (2*ocount)/3; +md->offset_overflow = FALSE; +md->capture_last = -1; /* Compute the minimum number of offsets that we need to reset each time. Doing this makes a huge difference to execution time when there aren't many brackets @@ -3586,9 +3902,9 @@ if (resetcount > offsetcount) resetcount never be used unless previously set, but they get saved and restored, and so we initialize them to avoid reading uninitialized locations. */ -if (match_block.offset_vector != NULL) +if (md->offset_vector != NULL) { - register int *iptr = match_block.offset_vector + ocount; + register int *iptr = md->offset_vector + ocount; register int *iend = iptr - resetcount/2 + 1; while (--iptr >= iend) *iptr = -1; } @@ -3605,7 +3921,7 @@ if (!anchored) { first_byte = re->first_byte & 255; if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE) - first_byte = match_block.lcc[first_byte]; + first_byte = md->lcc[first_byte]; } else if (!startline && study != NULL && @@ -3623,32 +3939,35 @@ if ((re->options & PCRE_REQCHSET) != 0) req_byte2 = (tables + fcc_offset)[req_byte]; /* case flipped */ } + +/* ==========================================================================*/ + /* Loop for handling unanchored repeated matching attempts; for anchored regexs the loop runs just once. */ -do +for(;;) { USPTR save_end_subject = end_subject; /* Reset the maximum number of extractions we might see. */ - if (match_block.offset_vector != NULL) + if (md->offset_vector != NULL) { - register int *iptr = match_block.offset_vector; + register int *iptr = md->offset_vector; register int *iend = iptr + resetcount; while (iptr < iend) *iptr++ = -1; } /* Advance to a unique first char if possible. If firstline is TRUE, the start of the match is constrained to the first line of a multiline string. - Implement this by temporarily adjusting end_subject so that we stop scanning - at a newline. If the match fails at the newline, later code breaks this loop. - */ + That is, the match must be before or at the first newline. Implement this by + temporarily adjusting end_subject so that we stop scanning at a newline. If + the match fails at the newline, later code breaks this loop. */ if (firstline) { USPTR t = start_match; - while (t < save_end_subject && *t != '\n') t++; + while (t < md->end_subject && !IS_NEWLINE(t)) t++; end_subject = t; } @@ -3658,20 +3977,20 @@ do { if (first_byte_caseless) while (start_match < end_subject && - match_block.lcc[*start_match] != first_byte) + md->lcc[*start_match] != first_byte) start_match++; else while (start_match < end_subject && *start_match != first_byte) start_match++; } - /* Or to just after \n for a multiline match if possible */ + /* Or to just after a linebreak for a multiline match if possible */ else if (startline) { - if (start_match > match_block.start_subject + start_offset) + if (start_match > md->start_subject + start_offset) { - while (start_match < end_subject && start_match[-1] != NEWLINE) + while (start_match <= end_subject && !WAS_NEWLINE(start_match)) start_match++; } } @@ -3693,7 +4012,7 @@ do #ifdef DEBUG /* Sigh. Some compilers never learn. */ printf(">>>> Match against: "); - pchars(start_match, end_subject - start_match, TRUE, &match_block); + pchars(start_match, end_subject - start_match, TRUE, md); printf("\n"); #endif @@ -3707,15 +4026,15 @@ do HOWEVER: when the subject string is very, very long, searching to its end can take a long time, and give bad performance on quite ordinary patterns. This - showed up when somebody was matching /^C/ on a 32-megabyte string... so we - don't do this when the string is sufficiently long. + showed up when somebody was matching something like /^\d+C/ on a 32-megabyte + string... so we don't do this when the string is sufficiently long. ALSO: this processing is disabled when partial matching is requested. */ if (req_byte >= 0 && end_subject - start_match < REQ_BYTE_MAX && - !match_block.partial) + !md->partial) { register USPTR p = start_match + ((first_byte >= 0)? 1 : 0); @@ -3740,9 +4059,14 @@ do } } - /* If we can't find the required character, break the matching loop */ + /* If we can't find the required character, break the matching loop, + forcing a match failure. */ - if (p >= end_subject) break; + if (p >= end_subject) + { + rc = MATCH_NOMATCH; + break; + } /* If we have found the required character, save the point where we found it, so that we don't search again next time round the loop if @@ -3752,85 +4076,115 @@ do } } - /* When a match occurs, substrings will be set for all internal extractions; - we just need to set up the whole thing as substring 0 before returning. If - there were too many extractions, set the return code to zero. In the case - where we had to get some local store to hold offsets for backreferences, copy - those back references that we can. In this case there need not be overflow - if certain parts of the pattern were not used. */ - - match_block.start_match = start_match; - match_block.match_call_count = 0; - - rc = match(start_match, match_block.start_code, 2, &match_block, ims, NULL, - match_isgroup, 0); - - /* When the result is no match, if the subject's first character was a - newline and the PCRE_FIRSTLINE option is set, break (which will return - PCRE_ERROR_NOMATCH). The option requests that a match occur before the first - newline in the subject. Otherwise, advance the pointer to the next character - and continue - but the continuation will actually happen only when the - pattern is not anchored. */ + /* OK, we can now run the match. */ - if (rc == MATCH_NOMATCH) - { - if (firstline && *start_match == NEWLINE) break; - start_match++; + md->start_match = start_match; + md->match_call_count = 0; + md->eptrn = 0; /* Next free eptrchain slot */ + rc = match(start_match, md->start_code, 2, md, ims, NULL, 0, 0); + + /* Any return other than MATCH_NOMATCH breaks the loop. */ + + if (rc != MATCH_NOMATCH) break; + + /* If PCRE_FIRSTLINE is set, the match must happen before or at the first + newline in the subject (though it may continue over the newline). Therefore, + if we have just failed to match, starting at a newline, do not continue. */ + + if (firstline && IS_NEWLINE(start_match)) break; + + /* Advance the match position by one character. */ + + start_match++; #ifdef SUPPORT_UTF8 - if (match_block.utf8) - while(start_match < end_subject && (*start_match & 0xc0) == 0x80) - start_match++; + if (utf8) + while(start_match < end_subject && (*start_match & 0xc0) == 0x80) + start_match++; #endif - continue; - } - if (rc != MATCH_MATCH) - { - DPRINTF((">>>> error: returning %d\n", rc)); - return rc; - } + /* Break the loop if the pattern is anchored or if we have passed the end of + the subject. */ + + if (anchored || start_match > end_subject) break; + + /* If we have just passed a CR and the newline option is CRLF or ANY, and we + are now at a LF, advance the match position by one more character. */ + + if (start_match[-1] == '\r' && + (md->nltype == NLTYPE_ANY || md->nllen == 2) && + start_match < end_subject && + *start_match == '\n') + start_match++; + + } /* End of for(;;) "bumpalong" loop */ + +/* ==========================================================================*/ + +/* We reach here when rc is not MATCH_NOMATCH, or if one of the stopping +conditions is true: + +(1) The pattern is anchored; - /* We have a match! Copy the offset information from temporary store if - necessary */ +(2) We are past the end of the subject; +(3) PCRE_FIRSTLINE is set and we have failed to match at a newline, because + this option requests that a match occur at or before the first newline in + the subject. + +When we have a match and the offset vector is big enough to deal with any +backreferences, captured substring offsets will already be set up. In the case +where we had to get some local store to hold offsets for backreference +processing, copy those that we can. In this case there need not be overflow if +certain parts of the pattern were not used, even though there are more +capturing parentheses than vector slots. */ + +if (rc == MATCH_MATCH) + { if (using_temporary_offsets) { if (offsetcount >= 4) { - memcpy(offsets + 2, match_block.offset_vector + 2, + memcpy(offsets + 2, md->offset_vector + 2, (offsetcount - 2) * sizeof(int)); DPRINTF(("Copied offsets from temporary memory\n")); } - if (match_block.end_offset_top > offsetcount) - match_block.offset_overflow = TRUE; - + if (md->end_offset_top > offsetcount) md->offset_overflow = TRUE; DPRINTF(("Freeing temporary memory\n")); - (pcre_free)(match_block.offset_vector); + (pcre_free)(md->offset_vector); } - rc = match_block.offset_overflow? 0 : match_block.end_offset_top/2; + /* Set the return code to the number of captured strings, or 0 if there are + too many to fit into the vector. */ + + rc = md->offset_overflow? 0 : md->end_offset_top/2; + + /* If there is space, set up the whole thing as substring 0. */ if (offsetcount < 2) rc = 0; else { - offsets[0] = start_match - match_block.start_subject; - offsets[1] = match_block.end_match_ptr - match_block.start_subject; + offsets[0] = start_match - md->start_subject; + offsets[1] = md->end_match_ptr - md->start_subject; } DPRINTF((">>>> returning %d\n", rc)); return rc; } -/* This "while" is the end of the "do" above */ - -while (!anchored && start_match <= end_subject); +/* Control gets here if there has been an error, or if the overall match +attempt has failed at all permitted starting positions. */ if (using_temporary_offsets) { DPRINTF(("Freeing temporary memory\n")); - (pcre_free)(match_block.offset_vector); + (pcre_free)(md->offset_vector); } -if (match_block.partial && match_block.hitend) +if (rc != MATCH_NOMATCH) + { + DPRINTF((">>>> error: returning %d\n", rc)); + return rc; + } +else if (md->partial && md->hitend) { DPRINTF((">>>> returning PCRE_ERROR_PARTIAL\n")); return PCRE_ERROR_PARTIAL; diff -Nurp tin-1.9.1/pcre/pcre_get.c tin-1.9.2/pcre/pcre_get.c --- tin-1.9.1/pcre/pcre_get.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_get.c 2006-12-19 10:31:35.000000000 +0100 @@ -50,8 +50,8 @@ for these functions came from Scott Wime * Find number for named string * *************************************************/ -/* This function is used by the two extraction functions below, as well -as being generally available. +/* This function is used by the get_first_set() function below, as well +as being generally available. It assumes that names are unique. Arguments: code the compiled regex @@ -94,6 +94,113 @@ return PCRE_ERROR_NOSUBSTRING; /************************************************* +* Find (multiple) entries for named string * +*************************************************/ + +/* This is used by the get_first_set() function below, as well as being +generally available. It is used when duplicated names are permitted. + +Arguments: + code the compiled regex + stringname the name whose entries required + firstptr where to put the pointer to the first entry + lastptr where to put the pointer to the last entry + +Returns: the length of each entry, or a negative number + (PCRE_ERROR_NOSUBSTRING) if not found +*/ + +int +pcre_get_stringtable_entries(const pcre *code, const char *stringname, + char **firstptr, char **lastptr) +{ +int rc; +int entrysize; +int top, bot; +uschar *nametable, *lastentry; + +if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0) + return rc; +if (top <= 0) return PCRE_ERROR_NOSUBSTRING; + +if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0) + return rc; +if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0) + return rc; + +lastentry = nametable + entrysize * (top - 1); +bot = 0; +while (top > bot) + { + int mid = (top + bot) / 2; + uschar *entry = nametable + entrysize*mid; + int c = strcmp(stringname, (char *)(entry + 2)); + if (c == 0) + { + uschar *first = entry; + uschar *last = entry; + while (first > nametable) + { + if (strcmp(stringname, (char *)(first - entrysize + 2)) != 0) break; + first -= entrysize; + } + while (last < lastentry) + { + if (strcmp(stringname, (char *)(last + entrysize + 2)) != 0) break; + last += entrysize; + } + *firstptr = (char *)first; + *lastptr = (char *)last; + return entrysize; + } + if (c > 0) bot = mid + 1; else top = mid; + } + +return PCRE_ERROR_NOSUBSTRING; +} + + + +/************************************************* +* Find first set of multiple named strings * +*************************************************/ + +/* This function allows for duplicate names in the table of named substrings. +It returns the number of the first one that was set in a pattern match. + +Arguments: + code the compiled regex + stringname the name of the capturing substring + ovector the vector of matched substrings + +Returns: the number of the first that is set, + or the number of the last one if none are set, + or a negative number on error +*/ + +static int +get_first_set(const pcre *code, const char *stringname, int *ovector) +{ +const real_pcre *re = (const real_pcre *)code; +int entrysize; +char *first, *last; +uschar *entry; +if ((re->options & (PCRE_DUPNAMES | PCRE_JCHANGED)) == 0) + return pcre_get_stringnumber(code, stringname); +entrysize = pcre_get_stringtable_entries(code, stringname, &first, &last); +if (entrysize <= 0) return entrysize; +for (entry = (uschar *)first; entry <= (uschar *)last; entry += entrysize) + { + int n = (entry[0] << 8) + entry[1]; + if (ovector[n*2] >= 0) return n; + } +return (first[0] << 8) + first[1]; +} + + + + +/************************************************* * Copy captured string to given buffer * *************************************************/ @@ -142,7 +249,8 @@ return yield; *************************************************/ /* This function copies a single captured substring into a given buffer, -identifying it by name. +identifying it by name. If the regex permits duplicate names, the first +substring that is set is chosen. Arguments: code the compiled regex @@ -168,7 +276,7 @@ int pcre_copy_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, char *buffer, int size) { -int n = pcre_get_stringnumber(code, stringname); +int n = get_first_set(code, stringname, ovector); if (n <= 0) return n; return pcre_copy_substring(subject, ovector, stringcount, n, buffer, size); } @@ -299,7 +407,8 @@ return yield; *************************************************/ /* This function copies a single captured substring, identified by name, into -new store. +new store. If the regex permits duplicate names, the first substring that is +set is chosen. Arguments: code the compiled regex @@ -324,7 +433,7 @@ int pcre_get_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, const char **stringptr) { -int n = pcre_get_stringnumber(code, stringname); +int n = get_first_set(code, stringname, ovector); if (n <= 0) return n; return pcre_get_substring(subject, ovector, stringcount, n, stringptr); } diff -Nurp tin-1.9.1/pcre/pcre_globals.c tin-1.9.2/pcre/pcre_globals.c --- tin-1.9.1/pcre/pcre_globals.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_globals.c 2006-12-19 10:31:35.000000000 +0100 @@ -51,6 +51,18 @@ differently, and global variables are no #ifndef VPCOMPAT + +/************************************************************************** +This code used to be here for use when compiling as a C++ library. However, +according to Dair Grant it is not needed: " + + Including 'extern "C"' in the declaration generates an "initialized and + declared `extern'" warning from gcc 4.0.1. Since we include pcre_internal.h, + which includes pcre.h, which declares these prototypes within an extern "C" {} + block, we shouldn't need the prefix here. + +So, from Release 7.0 I have cut this out. + #ifdef __cplusplus extern "C" void *(*pcre_malloc)(size_t) = malloc; extern "C" void (*pcre_free)(void *) = free; @@ -58,12 +70,13 @@ extern "C" void *(*pcre_stack_malloc)(si extern "C" void (*pcre_stack_free)(void *) = free; extern "C" int (*pcre_callout)(pcre_callout_block *) = NULL; #else +**************************************************************************/ + void *(*pcre_malloc)(size_t) = malloc; void (*pcre_free)(void *) = free; void *(*pcre_stack_malloc)(size_t) = malloc; void (*pcre_stack_free)(void *) = free; int (*pcre_callout)(pcre_callout_block *) = NULL; #endif -#endif /* End of pcre_globals.c */ diff -Nurp tin-1.9.1/pcre/pcre_internal.h tin-1.9.2/pcre/pcre_internal.h --- tin-1.9.1/pcre/pcre_internal.h 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_internal.h 2006-12-19 10:31:35.000000000 +0100 @@ -54,12 +54,16 @@ functions whose names all begin with "_p /* Use a macro for debugging printing, 'cause that eliminates the use of #ifdef inline, and there are *still* stupid compilers about that don't like indented pre-processor statements, or at least there were when I first wrote this. After -all, it had only been about 10 years then... */ +all, it had only been about 10 years then... +It turns out that the Mac Debugging.h header also defines the macro DPRINTF, so +be absolutely sure we get our version. */ + +#undef DPRINTF #ifdef DEBUG #define DPRINTF(p) printf p #else -#define DPRINTF(p) /*nothing*/ +#define DPRINTF(p) /* Nothing */ #endif @@ -114,6 +118,49 @@ Unix, where it is defined in sys/types, typedef unsigned char uschar; +/* This is an unsigned int value that no character can ever have. UTF-8 +characters only go up to 0x7fffffff (though Unicode doesn't go beyond +0x0010ffff). */ + +#define NOTACHAR 0xffffffff + +/* PCRE is able to support several different kinds of newline (CR, LF, CRLF, +and "all" at present). The following macros are used to package up testing for +newlines. NLBLOCK, PSSTART, and PSEND are defined in the various modules to +indicate in which datablock the parameters exist, and what the start/end of +string field names are. */ + +#define NLTYPE_FIXED 0 /* Newline is a fixed length string */ +#define NLTYPE_ANY 1 /* Newline is any Unicode line ending */ + +/* This macro checks for a newline at the given position */ + +#define IS_NEWLINE(p) \ + ((NLBLOCK->nltype != NLTYPE_FIXED)? \ + ((p) < NLBLOCK->PSEND && \ + _pcre_is_newline((p), NLBLOCK->PSEND, &(NLBLOCK->nllen), utf8) \ + ) \ + : \ + ((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ + (p)[0] == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || (p)[1] == NLBLOCK->nl[1]) \ + ) \ + ) + +/* This macro checks for a newline immediately preceding the given position */ + +#define WAS_NEWLINE(p) \ + ((NLBLOCK->nltype != NLTYPE_FIXED)? \ + ((p) > NLBLOCK->PSSTART && \ + _pcre_was_newline((p), NLBLOCK->PSSTART, &(NLBLOCK->nllen), utf8) \ + ) \ + : \ + ((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ + (p)[-NLBLOCK->nllen] == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || (p)[-NLBLOCK->nllen+1] == NLBLOCK->nl[1]) \ + ) \ + ) + /* When PCRE is compiled as a C++ library, the subject pointer can be replaced with a custom type. This makes it possible, for example, to allow pcre_exec() to process subject strings that are discontinuous by using a smart pointer @@ -160,7 +207,7 @@ case in PCRE. */ #if HAVE_BCOPY #define memmove(a, b, c) bcopy(b, a, c) #else /* HAVE_BCOPY */ -void * +static void * pcre_memmove(unsigned char *dest, const unsigned char *src, size_t n) { size_t i; @@ -270,7 +317,7 @@ we know we are in UTF-8 mode. */ #define GETCHAR(c, eptr) \ c = *eptr; \ - if ((c & 0xc0) == 0xc0) \ + if (c >= 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ @@ -288,7 +335,7 @@ pointer. */ #define GETCHARTEST(c, eptr) \ c = *eptr; \ - if (utf8 && (c & 0xc0) == 0xc0) \ + if (utf8 && c >= 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ @@ -306,7 +353,7 @@ know we are in UTF-8 mode. */ #define GETCHARINC(c, eptr) \ c = *eptr++; \ - if ((c & 0xc0) == 0xc0) \ + if (c >= 0xc0) \ { \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ @@ -322,7 +369,7 @@ know we are in UTF-8 mode. */ #define GETCHARINCTEST(c, eptr) \ c = *eptr++; \ - if (utf8 && (c & 0xc0) == 0xc0) \ + if (utf8 && c >= 0xc0) \ { \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ @@ -339,7 +386,7 @@ if there are extra bytes. This is called #define GETCHARLEN(c, eptr, len) \ c = *eptr; \ - if ((c & 0xc0) == 0xc0) \ + if (c >= 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ @@ -373,16 +420,17 @@ Standard C system should have one. */ #define PCRE_IMS (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL) -/* Private options flags start at the most significant end of the four bytes, -but skip the top bit so we can use ints for convenience without getting tangled -with negative values. The public options defined in pcre.h start at the least -significant end. Make sure they don't overlap! */ +/* Private options flags start at the most significant end of the four bytes. +The public options defined in pcre.h start at the least significant end. Make +sure they don't overlap! The bits are getting a bit scarce now -- when we run +out, there is a dummy word in the structure that could be used for the private +bits. */ +#define PCRE_NOPARTIAL 0x80000000 /* can't use partial with this regex */ #define PCRE_FIRSTSET 0x40000000 /* first_byte is set */ #define PCRE_REQCHSET 0x20000000 /* req_byte is set */ #define PCRE_STARTLINE 0x10000000 /* start after \n for multiline */ -#define PCRE_ICHANGED 0x08000000 /* i option changes within regex */ -#define PCRE_NOPARTIAL 0x04000000 /* can't use partial with this regex */ +#define PCRE_JCHANGED 0x08000000 /* j option changes within regex */ /* Options for the "extra" block produced by pcre_study(). */ @@ -391,18 +439,21 @@ significant end. Make sure they don't ov /* Masks for identifying the public options that are permitted at compile time, run time, or study time, respectively. */ +#define PCRE_NEWLINE_BITS (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY) + #define PUBLIC_OPTIONS \ (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8| \ - PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE) + PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE| \ + PCRE_DUPNAMES|PCRE_NEWLINE_BITS) #define PUBLIC_EXEC_OPTIONS \ (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ - PCRE_PARTIAL) + PCRE_PARTIAL|PCRE_NEWLINE_BITS) #define PUBLIC_DFA_EXEC_OPTIONS \ (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ - PCRE_PARTIAL|PCRE_DFA_SHORTEST|PCRE_DFA_RESTART) + PCRE_PARTIAL|PCRE_DFA_SHORTEST|PCRE_DFA_RESTART|PCRE_NEWLINE_BITS) #define PUBLIC_STUDY_OPTIONS 0 /* None defined */ @@ -434,9 +485,7 @@ typedef int BOOL; #define FALSE 0 #define TRUE 1 -/* Escape items that are just an encoding of a particular data value. Note that -ESC_n is defined as yet another macro, which is set in config.h to either \n -(the default) or \r (which some people want). */ +/* Escape items that are just an encoding of a particular data value. */ #ifndef ESC_e #define ESC_e 27 @@ -447,7 +496,7 @@ ESC_n is defined as yet another macro, w #endif #ifndef ESC_n -#define ESC_n NEWLINE +#define ESC_n '\n' #endif #ifndef ESC_r @@ -486,21 +535,28 @@ value such as \n. They must have non-zer their negation. Also, they must appear in the same order as in the opcode definitions below, up to ESC_z. There's a dummy for OP_ANY because it corresponds to "." rather than an escape sequence. The final one must be -ESC_REF as subsequent values are used for \1, \2, \3, etc. There is are two -tests in the code for an escape greater than ESC_b and less than ESC_Z to -detect the types that may be repeated. These are the types that consume -characters. If any new escapes are put in between that don't consume a +ESC_REF as subsequent values are used for backreferences (\1, \2, \3, etc). +There are two tests in the code for an escape greater than ESC_b and less than +ESC_Z to detect the types that may be repeated. These are the types that +consume characters. If any new escapes are put in between that don't consume a character, that code will have to change. */ enum { ESC_A = 1, ESC_G, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, ESC_W, - ESC_w, ESC_dum1, ESC_C, ESC_P, ESC_p, ESC_X, ESC_Z, ESC_z, ESC_E, - ESC_Q, ESC_REF }; + ESC_w, ESC_dum1, ESC_C, ESC_P, ESC_p, ESC_R, ESC_X, ESC_Z, ESC_z, + ESC_E, ESC_Q, ESC_k, ESC_REF }; + /* Opcode table: OP_BRA must be last, as all values >= it are used for brackets that extract substrings. Starting from 1 (i.e. after OP_END), the values up to OP_EOD must correspond in order to the list of escapes immediately above. -Note that whenever this list is updated, the two macro definitions that follow -must also be updated to match. */ + +To keep stored, compiled patterns compatible, new opcodes should be added +immediately before OP_BRA, where (since release 7.0) a gap is left for this +purpose. + +*** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions +that follow must also be updated to match. There is also a table called +"coptable" in pcre_dfa_exec.c that must be updated. */ enum { OP_END, /* 0 End of pattern */ @@ -521,110 +577,122 @@ enum { OP_ANYBYTE, /* 12 Match any byte (\C); different to OP_ANY for UTF-8 */ OP_NOTPROP, /* 13 \P (not Unicode property) */ OP_PROP, /* 14 \p (Unicode property) */ - OP_EXTUNI, /* 15 \X (extended Unicode sequence */ - OP_EODN, /* 16 End of data or \n at end of data: \Z. */ - OP_EOD, /* 17 End of data: \z */ - - OP_OPT, /* 18 Set runtime options */ - OP_CIRC, /* 19 Start of line - varies with multiline switch */ - OP_DOLL, /* 20 End of line - varies with multiline switch */ - OP_CHAR, /* 21 Match one character, casefully */ - OP_CHARNC, /* 22 Match one character, caselessly */ - OP_NOT, /* 23 Match anything but the following char */ - - OP_STAR, /* 24 The maximizing and minimizing versions of */ - OP_MINSTAR, /* 25 all these opcodes must come in pairs, with */ - OP_PLUS, /* 26 the minimizing one second. */ - OP_MINPLUS, /* 27 This first set applies to single characters */ - OP_QUERY, /* 28 */ - OP_MINQUERY, /* 29 */ - OP_UPTO, /* 30 From 0 to n matches */ - OP_MINUPTO, /* 31 */ - OP_EXACT, /* 32 Exactly n matches */ - - OP_NOTSTAR, /* 33 The maximizing and minimizing versions of */ - OP_NOTMINSTAR, /* 34 all these opcodes must come in pairs, with */ - OP_NOTPLUS, /* 35 the minimizing one second. */ - OP_NOTMINPLUS, /* 36 This set applies to "not" single characters */ - OP_NOTQUERY, /* 37 */ - OP_NOTMINQUERY, /* 38 */ - OP_NOTUPTO, /* 39 From 0 to n matches */ - OP_NOTMINUPTO, /* 40 */ - OP_NOTEXACT, /* 41 Exactly n matches */ - - OP_TYPESTAR, /* 42 The maximizing and minimizing versions of */ - OP_TYPEMINSTAR, /* 43 all these opcodes must come in pairs, with */ - OP_TYPEPLUS, /* 44 the minimizing one second. These codes must */ - OP_TYPEMINPLUS, /* 45 be in exactly the same order as those above. */ - OP_TYPEQUERY, /* 46 This set applies to character types such as \d */ - OP_TYPEMINQUERY, /* 47 */ - OP_TYPEUPTO, /* 48 From 0 to n matches */ - OP_TYPEMINUPTO, /* 49 */ - OP_TYPEEXACT, /* 50 Exactly n matches */ - - OP_CRSTAR, /* 51 The maximizing and minimizing versions of */ - OP_CRMINSTAR, /* 52 all these opcodes must come in pairs, with */ - OP_CRPLUS, /* 53 the minimizing one second. These codes must */ - OP_CRMINPLUS, /* 54 be in exactly the same order as those above. */ - OP_CRQUERY, /* 55 These are for character classes and back refs */ - OP_CRMINQUERY, /* 56 */ - OP_CRRANGE, /* 57 These are different to the three sets above. */ - OP_CRMINRANGE, /* 58 */ + OP_ANYNL, /* 15 \R (any newline sequence) */ + OP_EXTUNI, /* 16 \X (extended Unicode sequence */ + OP_EODN, /* 17 End of data or \n at end of data: \Z. */ + OP_EOD, /* 18 End of data: \z */ + + OP_OPT, /* 19 Set runtime options */ + OP_CIRC, /* 20 Start of line - varies with multiline switch */ + OP_DOLL, /* 21 End of line - varies with multiline switch */ + OP_CHAR, /* 22 Match one character, casefully */ + OP_CHARNC, /* 23 Match one character, caselessly */ + OP_NOT, /* 24 Match one character, not the following one */ + + OP_STAR, /* 25 The maximizing and minimizing versions of */ + OP_MINSTAR, /* 26 these six opcodes must come in pairs, with */ + OP_PLUS, /* 27 the minimizing one second. */ + OP_MINPLUS, /* 28 This first set applies to single characters.*/ + OP_QUERY, /* 29 */ + OP_MINQUERY, /* 30 */ + + OP_UPTO, /* 31 From 0 to n matches */ + OP_MINUPTO, /* 32 */ + OP_EXACT, /* 33 Exactly n matches */ + + OP_POSSTAR, /* 34 Possessified star */ + OP_POSPLUS, /* 35 Possessified plus */ + OP_POSQUERY, /* 36 Posesssified query */ + OP_POSUPTO, /* 37 Possessified upto */ + + OP_NOTSTAR, /* 38 The maximizing and minimizing versions of */ + OP_NOTMINSTAR, /* 39 these six opcodes must come in pairs, with */ + OP_NOTPLUS, /* 40 the minimizing one second. They must be in */ + OP_NOTMINPLUS, /* 41 exactly the same order as those above. */ + OP_NOTQUERY, /* 42 This set applies to "not" single characters. */ + OP_NOTMINQUERY, /* 43 */ + + OP_NOTUPTO, /* 44 From 0 to n matches */ + OP_NOTMINUPTO, /* 45 */ + OP_NOTEXACT, /* 46 Exactly n matches */ + + OP_NOTPOSSTAR, /* 47 Possessified versions */ + OP_NOTPOSPLUS, /* 48 */ + OP_NOTPOSQUERY, /* 49 */ + OP_NOTPOSUPTO, /* 50 */ + + OP_TYPESTAR, /* 51 The maximizing and minimizing versions of */ + OP_TYPEMINSTAR, /* 52 these six opcodes must come in pairs, with */ + OP_TYPEPLUS, /* 53 the minimizing one second. These codes must */ + OP_TYPEMINPLUS, /* 54 be in exactly the same order as those above. */ + OP_TYPEQUERY, /* 55 This set applies to character types such as \d */ + OP_TYPEMINQUERY, /* 56 */ + + OP_TYPEUPTO, /* 57 From 0 to n matches */ + OP_TYPEMINUPTO, /* 58 */ + OP_TYPEEXACT, /* 59 Exactly n matches */ + + OP_TYPEPOSSTAR, /* 60 Possessified versions */ + OP_TYPEPOSPLUS, /* 61 */ + OP_TYPEPOSQUERY, /* 62 */ + OP_TYPEPOSUPTO, /* 63 */ + + OP_CRSTAR, /* 64 The maximizing and minimizing versions of */ + OP_CRMINSTAR, /* 65 all these opcodes must come in pairs, with */ + OP_CRPLUS, /* 66 the minimizing one second. These codes must */ + OP_CRMINPLUS, /* 67 be in exactly the same order as those above. */ + OP_CRQUERY, /* 68 These are for character classes and back refs */ + OP_CRMINQUERY, /* 69 */ + OP_CRRANGE, /* 70 These are different to the three sets above. */ + OP_CRMINRANGE, /* 71 */ - OP_CLASS, /* 59 Match a character class, chars < 256 only */ - OP_NCLASS, /* 60 Same, but the bitmap was created from a negative + OP_CLASS, /* 72 Match a character class, chars < 256 only */ + OP_NCLASS, /* 73 Same, but the bitmap was created from a negative class - the difference is relevant only when a UTF-8 character > 255 is encountered. */ - OP_XCLASS, /* 61 Extended class for handling UTF-8 chars within the + OP_XCLASS, /* 74 Extended class for handling UTF-8 chars within the class. This does both positive and negative. */ - OP_REF, /* 62 Match a back reference */ - OP_RECURSE, /* 63 Match a numbered subpattern (possibly recursive) */ - OP_CALLOUT, /* 64 Call out to external function if provided */ - - OP_ALT, /* 65 Start of alternation */ - OP_KET, /* 66 End of group that doesn't have an unbounded repeat */ - OP_KETRMAX, /* 67 These two must remain together and in this */ - OP_KETRMIN, /* 68 order. They are for groups the repeat for ever. */ - - /* The assertions must come before ONCE and COND */ - - OP_ASSERT, /* 69 Positive lookahead */ - OP_ASSERT_NOT, /* 70 Negative lookahead */ - OP_ASSERTBACK, /* 71 Positive lookbehind */ - OP_ASSERTBACK_NOT, /* 72 Negative lookbehind */ - OP_REVERSE, /* 73 Move pointer back - used in lookbehind assertions */ - - /* ONCE and COND must come after the assertions, with ONCE first, as there's - a test for >= ONCE for a subpattern that isn't an assertion. */ - - OP_ONCE, /* 74 Once matched, don't back up into the subpattern */ - OP_COND, /* 75 Conditional group */ - OP_CREF, /* 76 Used to hold an extraction string number (cond ref) */ - - OP_BRAZERO, /* 77 These two must remain together and in this */ - OP_BRAMINZERO, /* 78 order. */ - - OP_BRANUMBER, /* 79 Used for extracting brackets whose number is greater - than can fit into an opcode. */ - - OP_BRA /* 80 This and greater values are used for brackets that - extract substrings up to EXTRACT_BASIC_MAX. After - that, use is made of OP_BRANUMBER. */ -}; - -/* WARNING WARNING WARNING: There is an implicit assumption in pcre.c and -study.c that all opcodes are less than 128 in value. This makes handling UTF-8 -character sequences easier. */ - -/* The highest extraction number before we have to start using additional -bytes. (Originally PCRE didn't have support for extraction counts highter than -this number.) The value is limited by the number of opcodes left after OP_BRA, -i.e. 255 - OP_BRA. We actually set it a bit lower to leave room for additional -opcodes. */ + OP_REF, /* 75 Match a back reference */ + OP_RECURSE, /* 76 Match a numbered subpattern (possibly recursive) */ + OP_CALLOUT, /* 77 Call out to external function if provided */ + + OP_ALT, /* 78 Start of alternation */ + OP_KET, /* 79 End of group that doesn't have an unbounded repeat */ + OP_KETRMAX, /* 80 These two must remain together and in this */ + OP_KETRMIN, /* 81 order. They are for groups the repeat for ever. */ + + /* The assertions must come before BRA, CBRA, ONCE, and COND.*/ + + OP_ASSERT, /* 82 Positive lookahead */ + OP_ASSERT_NOT, /* 83 Negative lookahead */ + OP_ASSERTBACK, /* 84 Positive lookbehind */ + OP_ASSERTBACK_NOT, /* 85 Negative lookbehind */ + OP_REVERSE, /* 86 Move pointer back - used in lookbehind assertions */ + + /* ONCE, BRA, CBRA, and COND must come after the assertions, with ONCE first, + as there's a test for >= ONCE for a subpattern that isn't an assertion. */ + + OP_ONCE, /* 87 Atomic group */ + OP_BRA, /* 88 Start of non-capturing bracket */ + OP_CBRA, /* 89 Start of capturing bracket */ + OP_COND, /* 90 Conditional group */ + + /* These three must follow the previous three, in the same order. There's a + check for >= SBRA to distinguish the two sets. */ + + OP_SBRA, /* 91 Start of non-capturing bracket, check empty */ + OP_SCBRA, /* 92 Start of capturing bracket, check empty */ + OP_SCOND, /* 93 Conditional group, check empty */ + + OP_CREF, /* 94 Used to hold a capture number as condition */ + OP_RREF, /* 95 Used to hold a recursion number as condition */ + OP_DEF, /* 96 The DEFINE condition */ -#define EXTRACT_BASIC_MAX 100 + OP_BRAZERO, /* 97 These two must remain together and in this */ + OP_BRAMINZERO /* 98 order. */ +}; /* This macro defines textual names for all the opcodes. These are used only @@ -633,17 +701,21 @@ for debugging. The macro is referenced o #define OP_NAME_LIST \ "End", "\\A", "\\G", "\\B", "\\b", "\\D", "\\d", \ "\\S", "\\s", "\\W", "\\w", "Any", "Anybyte", \ - "notprop", "prop", "extuni", \ + "notprop", "prop", "anynl", "extuni", \ "\\Z", "\\z", \ "Opt", "^", "$", "char", "charnc", "not", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ + "*+","++", "?+", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", \ "class", "nclass", "xclass", "Ref", "Recurse", "Callout", \ "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \ - "AssertB", "AssertB not", "Reverse", "Once", "Cond", "Cond ref",\ - "Brazero", "Braminzero", "Branumber", "Bra" + "AssertB", "AssertB not", "Reverse", \ + "Once", "Bra 0", "Bra", "Cond", "SBra 0", "SBra", "SCond", \ + "Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero" /* This macro defines the length of fixed length operations in the compiled @@ -659,7 +731,7 @@ in UTF-8 mode. The code that uses this t 1, /* End */ \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* \A, \G, \B, \B, \D, \d, \S, \s, \W, \w */ \ 1, 1, /* Any, Anybyte */ \ - 3, 3, 1, /* NOTPROP, PROP, EXTUNI */ \ + 3, 3, 1, 1, /* NOTPROP, PROP, EXTUNI, ANYNL */ \ 1, 1, 2, 1, 1, /* \Z, \z, Opt, ^, $ */ \ 2, /* Char - the minimum length */ \ 2, /* Charnc - the minimum length */ \ @@ -667,12 +739,15 @@ in UTF-8 mode. The code that uses this t /* Positive single-char repeats ** These are */ \ 2, 2, 2, 2, 2, 2, /* *, *?, +, +?, ?, ?? ** minima in */ \ 4, 4, 4, /* upto, minupto, exact ** UTF-8 mode */ \ + 2, 2, 2, 4, /* *+, ++, ?+, upto+ */ \ /* Negative single-char repeats - only for chars < 256 */ \ 2, 2, 2, 2, 2, 2, /* NOT *, *?, +, +?, ?, ?? */ \ 4, 4, 4, /* NOT upto, minupto, exact */ \ + 2, 2, 2, 4, /* Possessive *, +, ?, upto */ \ /* Positive type repeats */ \ 2, 2, 2, 2, 2, 2, /* Type *, *?, +, +?, ?, ?? */ \ 4, 4, 4, /* Type upto, minupto, exact */ \ + 2, 2, 2, 4, /* Possessive *+, ++, ?+, upto+ */ \ /* Character class & ref repeats */ \ 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ \ 5, 5, /* CRRANGE, CRMINRANGE */ \ @@ -691,17 +766,22 @@ in UTF-8 mode. The code that uses this t 1+LINK_SIZE, /* Assert behind */ \ 1+LINK_SIZE, /* Assert behind not */ \ 1+LINK_SIZE, /* Reverse */ \ - 1+LINK_SIZE, /* Once */ \ + 1+LINK_SIZE, /* ONCE */ \ + 1+LINK_SIZE, /* BRA */ \ + 3+LINK_SIZE, /* CBRA */ \ 1+LINK_SIZE, /* COND */ \ + 1+LINK_SIZE, /* SBRA */ \ + 3+LINK_SIZE, /* SCBRA */ \ + 1+LINK_SIZE, /* SCOND */ \ 3, /* CREF */ \ + 3, /* RREF */ \ + 1, /* DEF */ \ 1, 1, /* BRAZERO, BRAMINZERO */ \ - 3, /* BRANUMBER */ \ - 1+LINK_SIZE /* BRA */ \ -/* A magic value for OP_CREF to indicate the "in recursion" condition. */ +/* A magic value for OP_RREF to indicate the "any recursion" condition. */ -#define CREF_RECURSE 0xffff +#define RREF_ANY 0xffff /* Error code numbers. They are given names so that they can more easily be tracked. */ @@ -710,7 +790,8 @@ enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR10, ERR11, ERR12, ERR13, ERR14, ERR15, ERR16, ERR17, ERR18, ERR19, ERR20, ERR21, ERR22, ERR23, ERR24, ERR25, ERR26, ERR27, ERR28, ERR29, ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, - ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47 }; + ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47, ERR48, ERR49, + ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57 }; /* The real format of the start of the pcre block; the index of names and the code vector run on as long as necessary after the end. We store an explicit @@ -765,15 +846,23 @@ typedef struct compile_data { const uschar *fcc; /* Points to case-flipping table */ const uschar *cbits; /* Points to character type table */ const uschar *ctypes; /* Points to table of type maps */ + const uschar *start_workspace;/* The start of working space */ const uschar *start_code; /* The start of the compiled code */ const uschar *start_pattern; /* The start of the pattern */ + const uschar *end_pattern; /* The end of the pattern */ + uschar *hwm; /* High watermark of workspace */ uschar *name_table; /* The name/number table */ int names_found; /* Number of entries so far */ int name_entry_size; /* Size of each entry */ + int bracount; /* Count of capturing parens */ int top_backref; /* Maximum back reference */ unsigned int backref_map; /* Bitmap of low back refs */ + int external_options; /* External (initial) options */ int req_varyopt; /* "After variable item" flag for reqbyte */ BOOL nopartial; /* Set TRUE if partial won't work */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed length */ } compile_data; /* Structure for maintaining a chain of pointers to the currently incomplete @@ -798,14 +887,24 @@ typedef struct recursion_info { /* When compiling in a mode that doesn't use recursive calls to match(), a structure is used to remember local variables on the heap. It is defined in -pcre.c, close to the match() function, so that it is easy to keep it in step -with any changes of local variable. However, the pointer to the current frame -must be saved in some "static" place over a longjmp(). We declare the -structure here so that we can put a pointer in the match_data structure. -NOTE: This isn't used for a "normal" compilation of pcre. */ +pcre_exec.c, close to the match() function, so that it is easy to keep it in +step with any changes of local variable. However, the pointer to the current +frame must be saved in some "static" place over a longjmp(). We declare the +structure here so that we can put a pointer in the match_data structure. NOTE: +This isn't used for a "normal" compilation of pcre. */ struct heapframe; +/* Structure for building a chain of data for holding the values of the subject +pointer at the start of each subpattern, so as to detect when an empty string +has been matched by a subpattern - to break infinite loops. */ + +typedef struct eptrblock { + struct eptrblock *epb_prev; + USPTR epb_saved_eptr; +} eptrblock; + + /* Structure for passing "static" information around between the functions doing traditional NFA matching, so that they are thread-safe. */ @@ -816,6 +915,9 @@ typedef struct match_data { int *offset_vector; /* Offset vector */ int offset_end; /* One past the end */ int offset_max; /* The maximum usable for return data */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed */ const uschar *lcc; /* Points to lower casing table */ const uschar *ctypes; /* Points to table of type maps */ BOOL offset_overflow; /* Set if too many extractions */ @@ -834,6 +936,8 @@ typedef struct match_data { int end_offset_top; /* Highwater mark at end of match */ int capture_last; /* Most recent capture number */ int start_offset; /* The start offset value */ + eptrblock *eptrchain; /* Chain of eptrblocks for tail recursions */ + int eptrn; /* Next free eptrblock */ recursion_info *recursive; /* Linked list of recursion data */ void *callout_data; /* To pass back to callouts */ struct heapframe *thisframe; /* Used only when compiling for no recursion */ @@ -849,6 +953,9 @@ typedef struct dfa_match_data { const uschar *tables; /* Character tables */ int moptions; /* Match options */ int poptions; /* Pattern options */ + int nltype; /* Newline type */ + int nllen; /* Newline string length */ + uschar nl[4]; /* Newline string when fixed */ void *callout_data; /* To pass back to callouts */ } dfa_match_data; @@ -919,13 +1026,17 @@ extern const uschar _pcre_OP_lengths[]; one of the exported public functions. They have to be "external" in the C sense, but are not part of the PCRE public API. */ -extern int _pcre_ord2utf8(int, uschar *); -extern real_pcre * _pcre_try_flipped(const real_pcre *, real_pcre *, - const pcre_study_data *, pcre_study_data *); -extern int _pcre_ucp_findprop(const int, int *, int *); -extern int _pcre_ucp_othercase(const int); -extern int _pcre_valid_utf8(const uschar *, int); -extern BOOL _pcre_xclass(int, const uschar *); +extern BOOL _pcre_is_newline(const uschar *, const uschar *, int *, + BOOL); +extern int _pcre_ord2utf8(int, uschar *); +extern real_pcre *_pcre_try_flipped(const real_pcre *, real_pcre *, + const pcre_study_data *, pcre_study_data *); +extern int _pcre_ucp_findprop(const unsigned int, int *, int *); +extern unsigned int _pcre_ucp_othercase(const unsigned int); +extern int _pcre_valid_utf8(const uschar *, int); +extern BOOL _pcre_was_newline(const uschar *, const uschar *, int *, + BOOL); +extern BOOL _pcre_xclass(int, const uschar *); #endif diff -Nurp tin-1.9.1/pcre/pcre_maketables.c tin-1.9.2/pcre/pcre_maketables.c --- tin-1.9.1/pcre/pcre_maketables.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_maketables.c 2006-12-19 10:31:35.000000000 +0100 @@ -130,7 +130,9 @@ for (i = 0; i < 256; i++) meta-character, which in this sense is any character that terminates a run of data characters. */ - if (strchr("*+?{^.$|()[", i) != 0) x += ctype_meta; *p++ = x; } + if (strchr("\\*+?{^.$|()[", i) != 0) x += ctype_meta; + *p++ = x; + } return yield; } diff -Nurp tin-1.9.1/pcre/pcre_newline.c tin-1.9.2/pcre/pcre_newline.c --- tin-1.9.1/pcre/pcre_newline.c 1970-01-01 01:00:00.000000000 +0100 +++ tin-1.9.2/pcre/pcre_newline.c 2006-12-19 10:31:35.000000000 +0100 @@ -0,0 +1,135 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* PCRE is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel + Copyright (c) 1997-2006 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + + +/* This module contains internal functions for testing newlines when more than +one kind of newline is to be recognized. When a newline is found, its length is +returned. In principle, we could implement several newline "types", each +referring to a different set of newline characters. At present, PCRE supports +only NLTYPE_FIXED, which gets handled without these functions, and NLTYPE_ALL, +so for now the type isn't passed into the functions. It can easily be added +later if required. The full list of Unicode newline characters is taken from +http://unicode.org/unicode/reports/tr18/. */ + + +#include "pcre_internal.h" + + + +/************************************************* +* Check for newline at given position * +*************************************************/ + +/* It is guaranteed that the initial value of ptr is less than the end of the +string that is being processed. + +Arguments: + ptr pointer to possible newline + endptr pointer to the end of the string + lenptr where to return the length + utf8 TRUE if in utf8 mode + +Returns: TRUE or FALSE +*/ + +BOOL +_pcre_is_newline(const uschar *ptr, const uschar *endptr, int *lenptr, + BOOL utf8) +{ +int c; +if (utf8) { GETCHAR(c, ptr); } else c = *ptr; +switch(c) + { + case 0x000a: /* LF */ + case 0x000b: /* VT */ + case 0x000c: *lenptr = 1; return TRUE; /* FF */ + case 0x000d: *lenptr = (ptr < endptr - 1 && ptr[1] == 0x0a)? 2 : 1; + return TRUE; /* CR */ + case 0x0085: *lenptr = utf8? 2 : 1; return TRUE; /* NEL */ + case 0x2028: /* LS */ + case 0x2029: *lenptr = 3; return TRUE; /* PS */ + default: return FALSE; + } +} + + + +/************************************************* +* Check for newline at previous position * +*************************************************/ + +/* It is guaranteed that the initial value of ptr is greater than the start of +the string that is being processed. + +Arguments: + ptr pointer to possible newline + startptr pointer to the start of the string + lenptr where to return the length + utf8 TRUE if in utf8 mode + +Returns: TRUE or FALSE +*/ + +BOOL +_pcre_was_newline(const uschar *ptr, const uschar *startptr, int *lenptr, + BOOL utf8) +{ +int c; +ptr--; +if (utf8) + { + BACKCHAR(ptr); + GETCHAR(c, ptr); + } +else c = *ptr; +switch(c) + { + case 0x000a: *lenptr = (ptr > startptr && ptr[-1] == 0x0d)? 2 : 1; + return TRUE; /* LF */ + case 0x000b: /* VT */ + case 0x000c: /* FF */ + case 0x000d: *lenptr = 1; return TRUE; /* CR */ + case 0x0085: *lenptr = utf8? 2 : 1; return TRUE; /* NEL */ + case 0x2028: /* LS */ + case 0x2029: *lenptr = 3; return TRUE; /* PS */ + default: return FALSE; + } +} + +/* End of pcre_newline.c */ diff -Nurp tin-1.9.1/pcre/pcre_printint.src tin-1.9.2/pcre/pcre_printint.src --- tin-1.9.1/pcre/pcre_printint.src 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_printint.src 2006-12-19 10:31:35.000000000 +0100 @@ -49,9 +49,19 @@ local functions. This source file is use compiled regex for debugging purposes. */ +/* Macro that decides whether a character should be output as a literal or in +hexadecimal. We don't use isprint() because that can vary from system to system +(even without the use of locales) and we want the output always to be the same, +for testing purposes. This macro is used in pcretest as well as in this file. */ + +#define PRINTABLE(c) ((c) >= 32 && (c) < 127) + +/* The table of operator names. */ + static const char *OP_names[] = { OP_NAME_LIST }; + /************************************************* * Print single- or multi-byte character * *************************************************/ @@ -63,7 +73,7 @@ int c = *ptr; if (!utf8 || (c & 0xc0) != 0xc0) { - if (isprint(c)) fprintf(f, "%c", c); else fprintf(f, "\\x%02x", c); + if (PRINTABLE(c)) fprintf(f, "%c", c); else fprintf(f, "\\x%02x", c); return 0; } else @@ -111,9 +121,9 @@ for (i = _pcre_utt_size; i >= 0; i--) } return (i >= 0)? _pcre_utt[i].name : "??"; #else -ptype = ptype; /* Avoid compiler warning */ -pvalue = pvalue; -return "??"; +/* It gets harder and harder to shut off unwanted compiler warnings. */ +ptype = ptype * pvalue; +return (ptype == pvalue)? "??" : "??"; #endif } @@ -160,16 +170,6 @@ for(;;) fprintf(f, "%3d ", (int)(code - codestart)); - if (*code >= OP_BRA) - { - if (*code - OP_BRA > EXTRACT_BASIC_MAX) - fprintf(f, "%3d Bra extra\n", GET(code, 1)); - else - fprintf(f, "%3d Bra %d\n", GET(code, 1), *code - OP_BRA); - code += _pcre_OP_lengths[OP_BRA]; - continue; - } - switch(*code) { case OP_END: @@ -182,33 +182,35 @@ for(;;) break; case OP_CHAR: + fprintf(f, " "); + do { - fprintf(f, " "); - do - { - code++; - code += 1 + print_char(f, code, utf8); - } - while (*code == OP_CHAR); - fprintf(f, "\n"); - continue; + code++; + code += 1 + print_char(f, code, utf8); } - break; + while (*code == OP_CHAR); + fprintf(f, "\n"); + continue; case OP_CHARNC: + fprintf(f, " NC "); + do { - fprintf(f, " NC "); - do - { - code++; - code += 1 + print_char(f, code, utf8); - } - while (*code == OP_CHARNC); - fprintf(f, "\n"); - continue; + code++; + code += 1 + print_char(f, code, utf8); } + while (*code == OP_CHARNC); + fprintf(f, "\n"); + continue; + + case OP_CBRA: + case OP_SCBRA: + fprintf(f, "%3d %s %d", GET(code, 1), OP_names[*code], + GET2(code, 1+LINK_SIZE)); break; + case OP_BRA: + case OP_SBRA: case OP_KETRMAX: case OP_KETRMIN: case OP_ALT: @@ -219,33 +221,45 @@ for(;;) case OP_ASSERTBACK_NOT: case OP_ONCE: case OP_COND: + case OP_SCOND: case OP_REVERSE: fprintf(f, "%3d %s", GET(code, 1), OP_names[*code]); break; - case OP_BRANUMBER: - printf("%3d %s", GET2(code, 1), OP_names[*code]); + case OP_CREF: + fprintf(f, "%3d %s", GET2(code,1), OP_names[*code]); break; - case OP_CREF: - if (GET2(code, 1) == CREF_RECURSE) - fprintf(f, " Cond recurse"); + case OP_RREF: + c = GET2(code, 1); + if (c == RREF_ANY) + fprintf(f, " Cond recurse any"); else - fprintf(f, "%3d %s", GET2(code,1), OP_names[*code]); + fprintf(f, " Cond recurse %d", c); + break; + + case OP_DEF: + fprintf(f, " Cond def"); break; case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: case OP_QUERY: case OP_MINQUERY: + case OP_POSQUERY: case OP_TYPESTAR: case OP_TYPEMINSTAR: + case OP_TYPEPOSSTAR: case OP_TYPEPLUS: case OP_TYPEMINPLUS: + case OP_TYPEPOSPLUS: case OP_TYPEQUERY: case OP_TYPEMINQUERY: + case OP_TYPEPOSQUERY: fprintf(f, " "); if (*code >= OP_TYPESTAR) { @@ -263,17 +277,20 @@ for(;;) case OP_EXACT: case OP_UPTO: case OP_MINUPTO: + case OP_POSUPTO: fprintf(f, " "); extra = print_char(f, code+3, utf8); fprintf(f, "{"); - if (*code != OP_EXACT) fprintf(f, ","); + if (*code != OP_EXACT) fprintf(f, "0,"); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_MINUPTO) fprintf(f, "?"); + else if (*code == OP_POSUPTO) fprintf(f, "+"); break; case OP_TYPEEXACT: case OP_TYPEUPTO: case OP_TYPEMINUPTO: + case OP_TYPEPOSUPTO: fprintf(f, " %s", OP_names[code[3]]); if (code[3] == OP_PROP || code[3] == OP_NOTPROP) { @@ -284,20 +301,26 @@ for(;;) if (*code != OP_TYPEEXACT) fprintf(f, "0,"); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_TYPEMINUPTO) fprintf(f, "?"); + else if (*code == OP_TYPEPOSUPTO) fprintf(f, "+"); break; case OP_NOT: - if (isprint(c = code[1])) fprintf(f, " [^%c]", c); + c = code[1]; + if (PRINTABLE(c)) fprintf(f, " [^%c]", c); else fprintf(f, " [^\\x%02x]", c); break; case OP_NOTSTAR: case OP_NOTMINSTAR: + case OP_NOTPOSSTAR: case OP_NOTPLUS: case OP_NOTMINPLUS: + case OP_NOTPOSPLUS: case OP_NOTQUERY: case OP_NOTMINQUERY: - if (isprint(c = code[1])) fprintf(f, " [^%c]", c); + case OP_NOTPOSQUERY: + c = code[1]; + if (PRINTABLE(c)) fprintf(f, " [^%c]", c); else fprintf(f, " [^\\x%02x]", c); fprintf(f, "%s", OP_names[*code]); break; @@ -305,11 +328,14 @@ for(;;) case OP_NOTEXACT: case OP_NOTUPTO: case OP_NOTMINUPTO: - if (isprint(c = code[3])) fprintf(f, " [^%c]{", c); + case OP_NOTPOSUPTO: + c = code[3]; + if (PRINTABLE(c)) fprintf(f, " [^%c]{", c); else fprintf(f, " [^\\x%02x]{", c); if (*code != OP_NOTEXACT) fprintf(f, "0,"); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_NOTMINUPTO) fprintf(f, "?"); + else if (*code == OP_NOTPOSUPTO) fprintf(f, "+"); break; case OP_RECURSE: @@ -369,12 +395,14 @@ for(;;) for (j = i+1; j < 256; j++) if ((ccode[j/8] & (1 << (j&7))) == 0) break; if (i == '-' || i == ']') fprintf(f, "\\"); - if (isprint(i)) fprintf(f, "%c", i); else fprintf(f, "\\x%02x", i); + if (PRINTABLE(i)) fprintf(f, "%c", i); + else fprintf(f, "\\x%02x", i); if (--j > i) { if (j != i + 1) fprintf(f, "-"); if (j == '-' || j == ']') fprintf(f, "\\"); - if (isprint(j)) fprintf(f, "%c", j); else fprintf(f, "\\x%02x", j); + if (PRINTABLE(j)) fprintf(f, "%c", j); + else fprintf(f, "\\x%02x", j); } i = j; } diff -Nurp tin-1.9.1/pcre/pcre_study.c tin-1.9.2/pcre/pcre_study.c --- tin-1.9.1/pcre/pcre_study.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_study.c 2006-12-19 10:31:35.000000000 +0100 @@ -45,6 +45,11 @@ supporting functions. */ #include "pcre_internal.h" +/* Returns from set_start_bits() */ + +enum { SSB_FAIL, SSB_DONE, SSB_CONTINUE }; + + /************************************************* * Set a bit and maybe its alternate case * *************************************************/ @@ -72,12 +77,16 @@ if (caseless && (cd->ctypes[c] & ctype_l /************************************************* -* Create bitmap of starting chars * +* Create bitmap of starting bytes * *************************************************/ -/* This function scans a compiled unanchored expression and attempts to build a -bitmap of the set of initial characters. If it can't, it returns FALSE. As time -goes by, we may be able to get more clever at doing this. +/* This function scans a compiled unanchored expression recursively and +attempts to build a bitmap of the set of possible starting bytes. As time goes +by, we may be able to get more clever at doing this. The SSB_CONTINUE return is +useful for parenthesized groups in patterns such as (a*)b where the group +provides some optional starting bytes but scanning must continue at the outer +level to find at least one mandatory byte. At the outermost level, this +function fails unless the result is SSB_DONE. Arguments: code points to an expression @@ -86,14 +95,24 @@ Arguments: utf8 TRUE if in UTF-8 mode cd the block with char table pointers -Returns: TRUE if table built, FALSE otherwise +Returns: SSB_FAIL => Failed to find any starting bytes + SSB_DONE => Found mandatory starting bytes + SSB_CONTINUE => Found optional starting bytes */ -static BOOL +static int set_start_bits(const uschar *code, uschar *start_bits, BOOL caseless, BOOL utf8, compile_data *cd) { register int c; +int yield = SSB_DONE; + +#if 0 +/* ========================================================================= */ +/* The following comment and code was inserted in January 1999. In May 2006, +when it was observed to cause compiler warnings about unused values, I took it +out again. If anybody is still using OS/2, they will have to put it back +manually. */ /* This next statement and the later reference to dummy are here in order to trick the optimizer of the IBM C compiler for OS/2 into generating correct @@ -102,39 +121,65 @@ disable optimization (in this module it the pcre module can use all the optimization it can get). */ volatile int dummy; +/* ========================================================================= */ +#endif do { - const uschar *tcode = code + 1 + LINK_SIZE; + const uschar *tcode = code + (((int)*code == OP_CBRA)? 3:1) + LINK_SIZE; BOOL try_next = TRUE; - while (try_next) + while (try_next) /* Loop for items in this branch */ { - /* If a branch starts with a bracket or a positive lookahead assertion, - recurse to set bits from within them. That's all for this branch. */ - - if ((int)*tcode >= OP_BRA || *tcode == OP_ASSERT) + int rc; + switch(*tcode) { - if (!set_start_bits(tcode, start_bits, caseless, utf8, cd)) - return FALSE; - try_next = FALSE; - } + /* Fail if we reach something we don't understand */ - else switch(*tcode) - { default: - return FALSE; + return SSB_FAIL; - /* Skip over callout */ + /* If we hit a bracket or a positive lookahead assertion, recurse to set + bits from within the subpattern. If it can't find anything, we have to + give up. If it finds some mandatory character(s), we are done for this + branch. Otherwise, carry on scanning after the subpattern. */ + + case OP_BRA: + case OP_SBRA: + case OP_CBRA: + case OP_SCBRA: + case OP_ONCE: + case OP_ASSERT: + rc = set_start_bits(tcode, start_bits, caseless, utf8, cd); + if (rc == SSB_FAIL) return SSB_FAIL; + if (rc == SSB_DONE) try_next = FALSE; else + { + do tcode += GET(tcode, 1); while (*tcode == OP_ALT); + tcode += 1 + LINK_SIZE; + } + break; - case OP_CALLOUT: - tcode += 2 + 2*LINK_SIZE; + /* If we hit ALT or KET, it means we haven't found anything mandatory in + this branch, though we might have found something optional. For ALT, we + continue with the next alternative, but we have to arrange that the final + result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, + return SSB_CONTINUE: if this is the top level, that indicates failure, + but after a nested subpattern, it causes scanning to continue. */ + + case OP_ALT: + yield = SSB_CONTINUE; + try_next = FALSE; break; - /* Skip over extended extraction bracket number */ + case OP_KET: + case OP_KETRMAX: + case OP_KETRMIN: + return SSB_CONTINUE; - case OP_BRANUMBER: - tcode += 3; + /* Skip over callout */ + + case OP_CALLOUT: + tcode += 2 + 2*LINK_SIZE; break; /* Skip over lookbehind and negative lookahead assertions */ @@ -143,7 +188,7 @@ do case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: do tcode += GET(tcode, 1); while (*tcode == OP_ALT); - tcode += 1+LINK_SIZE; + tcode += 1 + LINK_SIZE; break; /* Skip over an option setting, changing the caseless flag */ @@ -157,23 +202,30 @@ do case OP_BRAZERO: case OP_BRAMINZERO: - if (!set_start_bits(++tcode, start_bits, caseless, utf8, cd)) - return FALSE; + if (set_start_bits(++tcode, start_bits, caseless, utf8, cd) == SSB_FAIL) + return SSB_FAIL; +/* ========================================================================= + See the comment at the head of this function concerning the next line, + which was an old fudge for the benefit of OS/2. dummy = 1; + ========================================================================= */ do tcode += GET(tcode,1); while (*tcode == OP_ALT); - tcode += 1+LINK_SIZE; + tcode += 1 + LINK_SIZE; break; /* Single-char * or ? sets the bit and tries the next item */ case OP_STAR: case OP_MINSTAR: + case OP_POSSTAR: case OP_QUERY: case OP_MINQUERY: + case OP_POSQUERY: set_bit(start_bits, tcode[1], caseless, cd); tcode += 2; #ifdef SUPPORT_UTF8 - if (utf8) while ((*tcode & 0xc0) == 0x80) tcode++; + if (utf8 && tcode[-1] >= 0xc0) + tcode += _pcre_utf8_table4[tcode[-1] & 0x3f]; #endif break; @@ -181,10 +233,12 @@ do case OP_UPTO: case OP_MINUPTO: + case OP_POSUPTO: set_bit(start_bits, tcode[3], caseless, cd); tcode += 4; #ifdef SUPPORT_UTF8 - if (utf8) while ((*tcode & 0xc0) == 0x80) tcode++; + if (utf8 && tcode[-1] >= 0xc0) + tcode += _pcre_utf8_table4[tcode[-1] & 0x3f]; #endif break; @@ -197,6 +251,7 @@ do case OP_CHARNC: case OP_PLUS: case OP_MINPLUS: + case OP_POSPLUS: set_bit(start_bits, tcode[1], caseless, cd); try_next = FALSE; break; @@ -215,15 +270,29 @@ do try_next = FALSE; break; + /* The cbit_space table has vertical tab as whitespace; we have to + discard it. */ + case OP_NOT_WHITESPACE: for (c = 0; c < 32; c++) - start_bits[c] |= ~cd->cbits[c+cbit_space]; + { + int d = cd->cbits[c+cbit_space]; + if (c == 1) d &= ~0x08; + start_bits[c] |= ~d; + } try_next = FALSE; break; + /* The cbit_space table has vertical tab as whitespace; we have to + discard it. */ + case OP_WHITESPACE: for (c = 0; c < 32; c++) - start_bits[c] |= cd->cbits[c+cbit_space]; + { + int d = cd->cbits[c+cbit_space]; + if (c == 1) d &= ~0x08; + start_bits[c] |= d; + } try_next = FALSE; break; @@ -256,16 +325,19 @@ do case OP_TYPEUPTO: case OP_TYPEMINUPTO: + case OP_TYPEPOSUPTO: tcode += 2; /* Fall through */ case OP_TYPESTAR: case OP_TYPEMINSTAR: + case OP_TYPEPOSSTAR: case OP_TYPEQUERY: case OP_TYPEMINQUERY: + case OP_TYPEPOSQUERY: switch(tcode[1]) { case OP_ANY: - return FALSE; + return SSB_FAIL; case OP_NOT_DIGIT: for (c = 0; c < 32; c++) @@ -277,14 +349,28 @@ do start_bits[c] |= cd->cbits[c+cbit_digit]; break; + /* The cbit_space table has vertical tab as whitespace; we have to + discard it. */ + case OP_NOT_WHITESPACE: for (c = 0; c < 32; c++) - start_bits[c] |= ~cd->cbits[c+cbit_space]; + { + int d = cd->cbits[c+cbit_space]; + if (c == 1) d &= ~0x08; + start_bits[c] |= ~d; + } break; + /* The cbit_space table has vertical tab as whitespace; we have to + discard it. */ + case OP_WHITESPACE: for (c = 0; c < 32; c++) - start_bits[c] |= cd->cbits[c+cbit_space]; + { + int d = cd->cbits[c+cbit_space]; + if (c == 1) d &= ~0x08; + start_bits[c] |= d; + } break; case OP_NOT_WORDCHAR: @@ -377,7 +463,7 @@ do code += GET(code, 1); /* Advance to next branch */ } while (*code == OP_ALT); -return TRUE; +return yield; } @@ -408,10 +494,9 @@ uschar start_bits[32]; pcre_extra *extra; pcre_study_data *study; const uschar *tables; -const real_pcre *re = (const real_pcre *)external_re; -uschar *code = (uschar *)re + re->name_table_offset + - (re->name_count * re->name_entry_size); +uschar *code; compile_data compile_block; +const real_pcre *re = (const real_pcre *)external_re; *errorptr = NULL; @@ -427,6 +512,9 @@ if ((options & ~PUBLIC_STUDY_OPTIONS) != return NULL; } +code = (uschar *)re + re->name_table_offset + + (re->name_count * re->name_entry_size); + /* For an anchored pattern, or an unanchored pattern that has a first char, or a multiline pattern that matches only at "line starts", no further processing at present. */ @@ -449,8 +537,8 @@ compile_block.ctypes = tables + ctypes_o /* See if we can find a fixed set of initial characters for the pattern. */ memset(start_bits, 0, 32 * sizeof(uschar)); -if (!set_start_bits(code, start_bits, (re->options & PCRE_CASELESS) != 0, - (re->options & PCRE_UTF8) != 0, &compile_block)) return NULL; +if (set_start_bits(code, start_bits, (re->options & PCRE_CASELESS) != 0, + (re->options & PCRE_UTF8) != 0, &compile_block) != SSB_DONE) return NULL; /* Get a pcre_extra block and a pcre_study_data block. The study data is put in the latter, which is pointed to by the former, which may also get additional diff -Nurp tin-1.9.1/pcre/pcre_tables.c tin-1.9.2/pcre/pcre_tables.c --- tin-1.9.1/pcre/pcre_tables.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_tables.c 2006-12-19 10:31:35.000000000 +0100 @@ -72,9 +72,8 @@ first byte of a character, indexed by th const int _pcre_utf8_table2[] = { 0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc}; const int _pcre_utf8_table3[] = { 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01}; -/* Table of the number of extra characters, indexed by the first character -masked with 0x3f. The highest number for a valid UTF-8 character is in fact -0x3d. */ +/* Table of the number of extra bytes, indexed by the first byte masked with +0x3f. The highest number for a valid UTF-8 first byte is in fact 0x3d. */ const uschar _pcre_utf8_table4[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -89,6 +88,7 @@ const ucp_type_table _pcre_utt[] = { { "Any", PT_ANY, 0 }, { "Arabic", PT_SC, ucp_Arabic }, { "Armenian", PT_SC, ucp_Armenian }, + { "Balinese", PT_SC, ucp_Balinese }, { "Bengali", PT_SC, ucp_Bengali }, { "Bopomofo", PT_SC, ucp_Bopomofo }, { "Braille", PT_SC, ucp_Braille }, @@ -104,6 +104,7 @@ const ucp_type_table _pcre_utt[] = { { "Common", PT_SC, ucp_Common }, { "Coptic", PT_SC, ucp_Coptic }, { "Cs", PT_PC, ucp_Cs }, + { "Cuneiform", PT_SC, ucp_Cuneiform }, { "Cypriot", PT_SC, ucp_Cypriot }, { "Cyrillic", PT_SC, ucp_Cyrillic }, { "Deseret", PT_SC, ucp_Deseret }, @@ -146,6 +147,7 @@ const ucp_type_table _pcre_utt[] = { { "N", PT_GC, ucp_N }, { "Nd", PT_PC, ucp_Nd }, { "New_Tai_Lue", PT_SC, ucp_New_Tai_Lue }, + { "Nko", PT_SC, ucp_Nko }, { "Nl", PT_PC, ucp_Nl }, { "No", PT_PC, ucp_No }, { "Ogham", PT_SC, ucp_Ogham }, @@ -158,6 +160,8 @@ const ucp_type_table _pcre_utt[] = { { "Pd", PT_PC, ucp_Pd }, { "Pe", PT_PC, ucp_Pe }, { "Pf", PT_PC, ucp_Pf }, + { "Phags_Pa", PT_SC, ucp_Phags_Pa }, + { "Phoenician", PT_SC, ucp_Phoenician }, { "Pi", PT_PC, ucp_Pi }, { "Po", PT_PC, ucp_Po }, { "Ps", PT_PC, ucp_Ps }, diff -Nurp tin-1.9.1/pcre/pcre_try_flipped.c tin-1.9.2/pcre/pcre_try_flipped.c --- tin-1.9.1/pcre/pcre_try_flipped.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_try_flipped.c 2006-12-19 10:31:35.000000000 +0100 @@ -62,8 +62,8 @@ Arguments: Returns: the flipped value */ -static long int -byteflip(long int value, int n) +static unsigned long int +byteflip(unsigned long int value, int n) { if (n == 2) return ((value & 0x00ff) << 8) | ((value & 0xff00) >> 8); return ((value & 0x000000ff) << 24) | diff -Nurp tin-1.9.1/pcre/pcre_ucp_searchfuncs.c tin-1.9.2/pcre/pcre_ucp_searchfuncs.c --- tin-1.9.1/pcre/pcre_ucp_searchfuncs.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_ucp_searchfuncs.c 2006-12-19 10:31:35.000000000 +0100 @@ -79,7 +79,7 @@ Returns: the character type categor */ int -_pcre_ucp_findprop(const int c, int *type_ptr, int *script_ptr) +_pcre_ucp_findprop(const unsigned int c, int *type_ptr, int *script_ptr) { int bot = 0; int top = sizeof(ucp_table)/sizeof(cnode); @@ -131,11 +131,11 @@ letter, return the other case. Otherwise Arguments: c the character value -Returns: the other case or -1 if none +Returns: the other case or NOTACHAR if none */ -int -_pcre_ucp_othercase(const int c) +unsigned int +_pcre_ucp_othercase(const unsigned int c) { int bot = 0; int top = sizeof(ucp_table)/sizeof(cnode); @@ -161,14 +161,14 @@ for (;;) } } -/* Found an entry in the table. Return -1 for a range entry. Otherwise return -the other case if there is one, else -1. */ +/* Found an entry in the table. Return NOTACHAR for a range entry. Otherwise +return the other case if there is one, else NOTACHAR. */ -if ((ucp_table[mid].f0 & f0_rangeflag) != 0) return -1; +if ((ucp_table[mid].f0 & f0_rangeflag) != 0) return NOTACHAR; offset = ucp_table[mid].f1 & f1_casemask; if ((offset & f1_caseneg) != 0) offset |= f1_caseneg; -return (offset == 0)? -1 : c + offset; +return (offset == 0)? NOTACHAR : c + offset; } diff -Nurp tin-1.9.1/pcre/pcre_valid_utf8.c tin-1.9.2/pcre/pcre_valid_utf8.c --- tin-1.9.1/pcre/pcre_valid_utf8.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_valid_utf8.c 2006-12-19 10:31:35.000000000 +0100 @@ -79,7 +79,7 @@ for (p = string; length-- > 0; p++) register int ab; register int c = *p; if (c < 128) continue; - if ((c & 0xc0) != 0xc0) return p - string; + if (c < 0xc0) return p - string; ab = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ if (length < ab) return p - string; length -= ab; diff -Nurp tin-1.9.1/pcre/pcre_version.c tin-1.9.2/pcre/pcre_version.c --- tin-1.9.1/pcre/pcre_version.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcre_version.c 2006-12-19 10:31:35.000000000 +0100 @@ -49,16 +49,38 @@ string that identifies the PCRE version * Return version string * *************************************************/ +/* These macros are the standard way of turning unquoted text into C strings. +They allow macros like PCRE_MAJOR to be defined without quotes, which is +convenient for user programs that want to test its value. */ + #define STRING(a) # a #define XSTRING(s) STRING(s) +/* A problem turned up with PCRE_PRERELEASE, which is defined empty for +production releases. Originally, it was used naively in this code: + + return XSTRING(PCRE_MAJOR) + "." XSTRING(PCRE_MINOR) + XSTRING(PCRE_PRERELEASE) + " " XSTRING(PCRE_DATE); + +However, when PCRE_PRERELEASE is empty, this leads to an attempted expansion of +STRING(). The C standard states: "If (before argument substitution) any +argument consists of no preprocessing tokens, the behavior is undefined." It +turns out the gcc treats this case as a single empty string - which is what we +really want - but Visual C grumbles about the lack of an argument for the +macro. Unfortunately, both are within their rights. To cope with both ways of +handling this, I had resort to some messy hackery that does a test at run time. +I could find no way of detecting that a macro is defined as an empty string at +pre-processor time. This hack uses a standard trick for avoiding calling +the STRING macro with an empty argument when doing the test. */ + PCRE_DATA_SCOPE const char * pcre_version(void) { -return XSTRING(PCRE_MAJOR) - "." XSTRING(PCRE_MINOR) - XSTRING(PCRE_PRERELEASE) - " " XSTRING(PCRE_DATE); +return (XSTRING(Z PCRE_PRERELEASE)[1] == 0)? + XSTRING(PCRE_MAJOR.PCRE_MINOR PCRE_DATE) : + XSTRING(PCRE_MAJOR.PCRE_MINOR) XSTRING(PCRE_PRERELEASE PCRE_DATE); } /* End of pcre_version.c */ diff -Nurp tin-1.9.1/pcre/pcredemo.c tin-1.9.2/pcre/pcredemo.c --- tin-1.9.1/pcre/pcredemo.c 2006-02-15 19:44:39.000000000 +0100 +++ tin-1.9.2/pcre/pcredemo.c 2006-12-19 10:31:35.000000000 +0100 @@ -117,7 +117,7 @@ if (rc < 0) */ default: printf("Matching error %d\n", rc); break; } - free(re); /* Release memory used for the compiled pattern */ + pcre_free(re); /* Release memory used for the compiled pattern */ return 1; } @@ -223,8 +223,8 @@ if (namecount <= 0) printf("No named sub if (!find_all) { - free(re); /* Release the memory used for the compiled pattern */ - return 0; /* Finish unless -g was given */ + pcre_free(re); /* Release the memory used for the compiled pattern */ + return 0; /* Finish unless -g was given */ } /* Loop for second and subsequent matches */ @@ -276,7 +276,7 @@ for (;;) if (rc < 0) { printf("Matching error %d\n", rc); - free(re); /* Release memory used for the compiled pattern */ + pcre_free(re); /* Release memory used for the compiled pattern */ return 1; } @@ -317,7 +317,7 @@ for (;;) } /* End of loop to find second and subsequent matches */ printf("\n"); -free(re); /* Release memory used for the compiled pattern */ +pcre_free(re); /* Release memory used for the compiled pattern */ return 0; } diff -Nurp tin-1.9.1/pcre/pcregrep.c tin-1.9.2/pcre/pcregrep.c --- tin-1.9.1/pcre/pcregrep.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcregrep.c 2006-12-19 10:31:35.000000000 +0100 @@ -56,7 +56,7 @@ POSSIBILITY OF SUCH DAMAGE. typedef int BOOL; -#define VERSION "4.2 09-Jan-2006" +#define VERSION "4.4 29-Nov-2006" #define MAX_PATTERN_COUNT 100 #if BUFSIZ > 8192 @@ -65,7 +65,6 @@ typedef int BOOL; #define MBUFTHIRD 8192 #endif - /* Values for the "filenames" variable, which specifies options for file name output. The order is important; it is assumed that a file name is wanted for all values greater than FN_DEFAULT. */ @@ -83,6 +82,10 @@ enum { DEE_READ, DEE_SKIP }; #define PO_LINE_MATCH 0x0002 #define PO_FIXED_STRINGS 0x0004 +/* Line ending types */ + +enum { EL_LF, EL_CR, EL_CRLF, EL_ANY }; + /************************************************* @@ -100,10 +103,13 @@ static const char *jfriedl_prefix = ""; static const char *jfriedl_postfix = ""; #endif +static int endlinetype; + static char *colour_string = (char *)"1;31"; static char *colour_option = NULL; static char *dee_option = NULL; static char *DEE_option = NULL; +static char *newline = NULL; static char *pattern_filename = NULL; static char *stdin_name = (char *)"(standard input)"; static char *locale = NULL; @@ -138,6 +144,7 @@ static BOOL number = FALSE; static BOOL only_matching = FALSE; static BOOL quiet = FALSE; static BOOL silent = FALSE; +static BOOL utf8 = FALSE; /* Structure for options and list of them */ @@ -185,6 +192,7 @@ static option_item optionlist[] = { { OP_STRING, N_LABEL, &stdin_name, "label=name", "set name for standard input" }, { OP_STRING, N_LOCALE, &locale, "locale=locale", "use the named locale" }, { OP_NODATA, 'M', NULL, "multiline", "run in multiline mode" }, + { OP_STRING, 'N', &newline, "newline=type", "specify newline type (CR, LR, CRLF)" }, { OP_NODATA, 'n', NULL, "line-number", "print line number with output lines" }, { OP_NODATA, 'o', NULL, "only-matching", "show only the part of the line that matched" }, { OP_NODATA, 'q', NULL, "quiet", "suppress output, just set return code" }, @@ -214,6 +222,16 @@ static const char *prefix[] = { static const char *suffix[] = { "", "\\b", ")$", ")$", "\\E", "\\E\\b", "\\E)$", "\\E)$" }; +/* UTF-8 tables - used only when the newline setting is "all". */ + +const int utf8_table3[] = { 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01}; + +const char utf8_table4[] = { + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 }; + /************************************************* @@ -466,6 +484,216 @@ return sys_errlist[n]; /************************************************* +* Find end of line * +*************************************************/ + +/* The length of the endline sequence that is found is set via lenptr. This may +be zero at the very end of the file if there is no line-ending sequence there. + +Arguments: + p current position in line + endptr end of available data + lenptr where to put the length of the eol sequence + +Returns: pointer to the last byte of the line +*/ + +static char * +end_of_line(char *p, char *endptr, int *lenptr) +{ +switch(endlinetype) + { + default: /* Just in case */ + case EL_LF: + while (p < endptr && *p != '\n') p++; + if (p < endptr) + { + *lenptr = 1; + return p + 1; + } + *lenptr = 0; + return endptr; + + case EL_CR: + while (p < endptr && *p != '\r') p++; + if (p < endptr) + { + *lenptr = 1; + return p + 1; + } + *lenptr = 0; + return endptr; + + case EL_CRLF: + for (;;) + { + while (p < endptr && *p != '\r') p++; + if (++p >= endptr) + { + *lenptr = 0; + return endptr; + } + if (*p == '\n') + { + *lenptr = 2; + return p + 1; + } + } + break; + + case EL_ANY: + while (p < endptr) + { + int extra = 0; + register int c = *((unsigned char *)p); + + if (utf8 && c >= 0xc0) + { + int gcii, gcss; + extra = utf8_table4[c & 0x3f]; /* Number of additional bytes */ + gcss = 6*extra; + c = (c & utf8_table3[extra]) << gcss; + for (gcii = 1; gcii <= extra; gcii++) + { + gcss -= 6; + c |= (p[gcii] & 0x3f) << gcss; + } + } + + p += 1 + extra; + + switch (c) + { + case 0x0a: /* LF */ + case 0x0b: /* VT */ + case 0x0c: /* FF */ + *lenptr = 1; + return p; + + case 0x0d: /* CR */ + if (p < endptr && *p == 0x0a) + { + *lenptr = 2; + p++; + } + else *lenptr = 1; + return p; + + case 0x85: /* NEL */ + *lenptr = utf8? 2 : 1; + return p; + + case 0x2028: /* LS */ + case 0x2029: /* PS */ + *lenptr = 3; + return p; + + default: + break; + } + } /* End of loop for ANY case */ + + *lenptr = 0; /* Must have hit the end */ + return endptr; + } /* End of overall switch */ +} + + + +/************************************************* +* Find start of previous line * +*************************************************/ + +/* This is called when looking back for before lines to print. + +Arguments: + p start of the subsequent line + startptr start of available data + +Returns: pointer to the start of the previous line +*/ + +static char * +previous_line(char *p, char *startptr) +{ +switch(endlinetype) + { + default: /* Just in case */ + case EL_LF: + p--; + while (p > startptr && p[-1] != '\n') p--; + return p; + + case EL_CR: + p--; + while (p > startptr && p[-1] != '\n') p--; + return p; + + case EL_CRLF: + for (;;) + { + p -= 2; + while (p > startptr && p[-1] != '\n') p--; + if (p <= startptr + 1 || p[-2] == '\r') return p; + } + return p; /* But control should never get here */ + + case EL_ANY: + if (*(--p) == '\n' && p > startptr && p[-1] == '\r') p--; + if (utf8) while ((*p & 0xc0) == 0x80) p--; + + while (p > startptr) + { + register int c; + char *pp = p - 1; + + if (utf8) + { + int extra = 0; + while ((*pp & 0xc0) == 0x80) pp--; + c = *((unsigned char *)pp); + if (c >= 0xc0) + { + int gcii, gcss; + extra = utf8_table4[c & 0x3f]; /* Number of additional bytes */ + gcss = 6*extra; + c = (c & utf8_table3[extra]) << gcss; + for (gcii = 1; gcii <= extra; gcii++) + { + gcss -= 6; + c |= (pp[gcii] & 0x3f) << gcss; + } + } + } + else c = *((unsigned char *)pp); + + switch (c) + { + case 0x0a: /* LF */ + case 0x0b: /* VT */ + case 0x0c: /* FF */ + case 0x0d: /* CR */ + case 0x85: /* NEL */ + case 0x2028: /* LS */ + case 0x2029: /* PS */ + return p; + + default: + break; + } + + p = pp; /* Back one character */ + } /* End of loop for ANY case */ + + return startptr; /* Hit start of data */ + } /* End of overall switch */ +} + + + + + +/************************************************* * Print the previous "after" lines * *************************************************/ @@ -490,12 +718,13 @@ if (after_context > 0 && lastmatchnumber int count = 0; while (lastmatchrestart < endptr && count++ < after_context) { + int ellength; char *pp = lastmatchrestart; if (printname != NULL) fprintf(stdout, "%s-", printname); if (number) fprintf(stdout, "%d-", lastmatchnumber++); - while (*pp != '\n') pp++; - fwrite(lastmatchrestart, 1, pp - lastmatchrestart + 1, stdout); - lastmatchrestart = pp + 1; + pp = end_of_line(pp, endptr, &ellength); + fwrite(lastmatchrestart, 1, pp - lastmatchrestart, stdout); + lastmatchrestart = pp; } hyphenpending = TRUE; } @@ -552,7 +781,7 @@ way, the buffer is shifted left and re-f while (ptr < endptr) { - int i; + int i, endlinelength; int mrc = 0; BOOL match = FALSE; char *t = ptr; @@ -565,11 +794,10 @@ while (ptr < endptr) line. In multiline mode the PCRE_FIRSTLINE option is used for compiling, so that any match is constrained to be in the first line. */ - linelength = 0; - while (t < endptr && *t++ != '\n') linelength++; + t = end_of_line(t, endptr, &endlinelength); + linelength = t - ptr - endlinelength; length = multiline? endptr - ptr : linelength; - /* Extra processing for Jeffrey Friedl's debugging. */ #ifdef JFRIEDL_DEBUG @@ -700,13 +928,13 @@ while (ptr < endptr) if (after_context > 0 && lastmatchnumber > 0) { + int ellength; int linecount = 0; char *p = lastmatchrestart; while (p < ptr && linecount < after_context) { - while (*p != '\n') p++; - p++; + p = end_of_line(p, ptr, &ellength); linecount++; } @@ -719,9 +947,9 @@ while (ptr < endptr) char *pp = lastmatchrestart; if (printname != NULL) fprintf(stdout, "%s-", printname); if (number) fprintf(stdout, "%d-", lastmatchnumber++); - while (*pp != '\n') pp++; - fwrite(lastmatchrestart, 1, pp - lastmatchrestart + 1, stdout); - lastmatchrestart = pp + 1; + pp = end_of_line(pp, endptr, &ellength); + fwrite(lastmatchrestart, 1, pp - lastmatchrestart, stdout); + lastmatchrestart = pp; } if (lastmatchrestart != ptr) hyphenpending = TRUE; } @@ -747,8 +975,7 @@ while (ptr < endptr) linecount < before_context) { linecount++; - p--; - while (p > buffer && p[-1] != '\n') p--; + p = previous_line(p, buffer); } if (lastmatchnumber > 0 && p > lastmatchrestart && !hyphenprinted) @@ -756,12 +983,13 @@ while (ptr < endptr) while (p < ptr) { + int ellength; char *pp = p; if (printname != NULL) fprintf(stdout, "%s-", printname); if (number) fprintf(stdout, "%d-", linenumber - linecount--); - while (*pp != '\n') pp++; - fwrite(p, 1, pp - p + 1, stdout); /* In case binary zero */ - p = pp + 1; + pp = end_of_line(pp, endptr, &ellength); + fwrite(p, 1, pp - p, stdout); + p = pp; } } @@ -777,15 +1005,20 @@ while (ptr < endptr) /* In multiline mode, we want to print to the end of the line in which the end of the matched string is found, so we adjust linelength and the line number appropriately. Because the PCRE_FIRSTLINE option is set, the - start of the match will always be before the first \n character. */ + start of the match will always be before the first newline sequence. */ if (multiline) { + int ellength; char *endmatch = ptr + offsets[1]; t = ptr; - while (t < endmatch) { if (*t++ == '\n') linenumber++; } - while (endmatch < endptr && *endmatch != '\n') endmatch++; - linelength = endmatch - ptr; + while (t < endmatch) + { + t = end_of_line(t, endptr, &ellength); + if (t <= endmatch) linenumber++; else break; + } + endmatch = end_of_line(endmatch, endptr, &ellength); + linelength = endmatch - ptr - ellength; } /*** NOTE: Use only fwrite() to output the data line, so that binary @@ -817,9 +1050,7 @@ while (ptr < endptr) fprintf(stdout, "%c[00m", 0x1b); fwrite(ptr + offsets[1], 1, linelength - offsets[1], stdout); } - else fwrite(ptr, 1, linelength, stdout); - - fprintf(stdout, "\n"); + else fwrite(ptr, 1, linelength + endlinelength, stdout); } /* End of doing what has to be done for a match */ @@ -829,13 +1060,13 @@ while (ptr < endptr) /* Remember where the last match happened for after_context. We remember where we are about to restart, and that line's number. */ - lastmatchrestart = ptr + linelength + 1; + lastmatchrestart = ptr + linelength + endlinelength; lastmatchnumber = linenumber + 1; } /* Advance to after the newline and increment the line number. */ - ptr += linelength + 1; + ptr += linelength + endlinelength; linenumber++; /* If we haven't yet reached the end of the file (the buffer is full), and @@ -1091,7 +1322,7 @@ switch(letter) case 'q': quiet = TRUE; break; case 'r': dee_action = dee_RECURSE; break; case 's': silent = TRUE; break; - case 'u': options |= PCRE_UTF8; break; + case 'u': options |= PCRE_UTF8; utf8 = TRUE; break; case 'v': invert = TRUE; break; case 'w': process_options |= PO_WORD_MATCH; break; case 'x': process_options |= PO_LINE_MATCH; break; @@ -1206,7 +1437,7 @@ return FALSE; *************************************************/ /* When the -F option has been used, each string may be a list of strings, -separated by newlines. They will be matched literally. +separated by line breaks. They will be matched literally. Arguments: pattern the pattern string @@ -1224,14 +1455,16 @@ compile_pattern(char *pattern, int optio { if ((process_options & PO_FIXED_STRINGS) != 0) { + char *eop = pattern + strlen(pattern); char buffer[MBUFTHIRD]; for(;;) { - char *p = strchr(pattern, '\n'); - if (p == NULL) + int ellength; + char *p = end_of_line(pattern, eop, &ellength); + if (ellength == 0) return compile_single_pattern(pattern, options, filename, count); - sprintf(buffer, "%.*s", p - pattern, pattern); - pattern = p + 1; + sprintf(buffer, "%.*s", p - pattern - ellength, pattern); + pattern = p; if (!compile_single_pattern(buffer, options, filename, count)) return FALSE; } @@ -1260,6 +1493,19 @@ char *patterns[MAX_PATTERN_COUNT]; const char *locale_from = "--locale"; const char *error; +/* Set the default line ending value from the default in the PCRE library; +"lf", "cr", "crlf", and "any" are supported. Anything else is treated as "lf". +*/ + +(void)pcre_config(PCRE_CONFIG_NEWLINE, &i); +switch(i) + { + default: newline = (char *)"lf"; break; + case '\r': newline = (char *)"cr"; break; + case ('\r' << 8) | '\n': newline = (char *)"crlf"; break; + case -1: newline = (char *)"any"; break; + } + /* Process the options */ for (i = 1; i < argc; i++) @@ -1543,6 +1789,34 @@ if (colour_option != NULL && strcmp(colo } } +/* Interpret the newline type; the default settings are Unix-like. */ + +if (strcmp(newline, "cr") == 0 || strcmp(newline, "CR") == 0) + { + pcre_options |= PCRE_NEWLINE_CR; + endlinetype = EL_CR; + } +else if (strcmp(newline, "lf") == 0 || strcmp(newline, "LF") == 0) + { + pcre_options |= PCRE_NEWLINE_LF; + endlinetype = EL_LF; + } +else if (strcmp(newline, "crlf") == 0 || strcmp(newline, "CRLF") == 0) + { + pcre_options |= PCRE_NEWLINE_CRLF; + endlinetype = EL_CRLF; + } +else if (strcmp(newline, "any") == 0 || strcmp(newline, "ANY") == 0) + { + pcre_options |= PCRE_NEWLINE_ANY; + endlinetype = EL_ANY; + } +else + { + fprintf(stderr, "pcregrep: Invalid newline specifier \"%s\"\n", newline); + return 2; + } + /* Interpret the text values for -d and -D */ if (dee_option != NULL) diff -Nurp tin-1.9.1/pcre/pcreposix.c tin-1.9.2/pcre/pcreposix.c --- tin-1.9.1/pcre/pcreposix.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcreposix.c 2006-12-19 10:31:35.000000000 +0100 @@ -77,8 +77,8 @@ static const int eint[] = { REG_ASSERT, /* internal error: code overflow */ REG_BADPAT, /* unrecognized character after (?< */ REG_BADPAT, /* lookbehind assertion is not fixed length */ - REG_BADPAT, /* malformed number after (?( */ - REG_BADPAT, /* conditional group containe more than two branches */ + REG_BADPAT, /* malformed number or name after (?( */ + REG_BADPAT, /* conditional group contains more than two branches */ REG_BADPAT, /* assertion expected after (?( */ REG_BADPAT, /* (?R or (?digits must be followed by ) */ REG_ECTYPE, /* unknown POSIX class name */ @@ -93,12 +93,22 @@ static const int eint[] = { REG_BADPAT, /* closing ) for (?C expected */ REG_BADPAT, /* recursive call could loop indefinitely */ REG_BADPAT, /* unrecognized character after (?P */ - REG_BADPAT, /* syntax error after (?P */ - REG_BADPAT, /* two named groups have the same name */ + REG_BADPAT, /* syntax error in subpattern name (missing terminator) */ + REG_BADPAT, /* two named subpatterns have the same name */ REG_BADPAT, /* invalid UTF-8 string */ REG_BADPAT, /* support for \P, \p, and \X has not been compiled */ REG_BADPAT, /* malformed \P or \p sequence */ - REG_BADPAT /* unknown property name after \P or \p */ + REG_BADPAT, /* unknown property name after \P or \p */ + REG_BADPAT, /* subpattern name is too long (maximum 32 characters) */ + REG_BADPAT, /* too many named subpatterns (maximum 10,000) */ + REG_BADPAT, /* repeated subpattern is too long */ + REG_BADPAT, /* octal value is greater than \377 (not in UTF-8 mode) */ + REG_BADPAT, /* internal error: overran compiling workspace */ + REG_BADPAT, /* internal error: previously-checked referenced subpattern not found */ + REG_BADPAT, /* DEFINE group contains more than one branch */ + REG_BADPAT, /* repeating a DEFINE group is not allowed */ + REG_INVARG, /* inconsistent NEWLINE options */ + REG_BADPAT /* \g is not followed followed by an (optionally braced) non-zero number */ }; /* Table of texts corresponding to POSIX error codes */ diff -Nurp tin-1.9.1/pcre/pcretest.c tin-1.9.2/pcre/pcretest.c --- tin-1.9.1/pcre/pcretest.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/pcretest.c 2006-12-19 10:31:35.000000000 +0100 @@ -44,6 +44,29 @@ POSSIBILITY OF SUCH DAMAGE. #include #include + +/* A number of things vary for Windows builds. Originally, pcretest opened its +input and output without "b"; then I was told that "b" was needed in some +environments, so it was added for release 5.0 to both the input and output. (It +makes no difference on Unix-like systems.) Later I was told that it is wrong +for the input on Windows. I've now abstracted the modes into two macros that +are set here, to make it easier to fiddle with them, and removed "b" from the +input mode under Windows. */ + +#if defined(_WIN32) || defined(WIN32) +#include /* For _setmode() */ +#include /* For _O_BINARY */ +#define INPUT_MODE "r" +#define OUTPUT_MODE "wb" + +#else +#include /* These two includes are needed */ +#include /* for setrlimit(). */ +#define INPUT_MODE "rb" +#define OUTPUT_MODE "wb" +#endif + + #define PCRE_SPY /* For Win32 build, import data, not export */ /* We include pcre_internal.h because we need the internal info for displaying @@ -70,10 +93,18 @@ symbols to prevent clashes. */ /* We also need the pcre_printint() function for printing out compiled patterns. This function is in a separate file so that it can be included in -pcre_compile.c when that module is compiled with debugging enabled. */ +pcre_compile.c when that module is compiled with debugging enabled. + +The definition of the macro PRINTABLE, which determines whether to print an +output character as-is or as a hex value when showing compiled patterns, is +contained in this file. We uses it here also, in cases when the locale has not +been explicitly changed, so as to get consistent output from systems that +differ in their output from isprint() even in the "C" locale. */ #include "pcre_printint.src" +#define PRINTHEX(c) (locale_set? isprint(c) : PRINTABLE(c)) + /* It is possible to compile this test program without including support for testing the POSIX interface, though this is not available via the standard @@ -99,12 +130,9 @@ function (define NOINFOCHECK). */ #endif #endif -#define LOOPREPEAT 500000 - -#define BUFFER_SIZE 30000 -#define PBUFFER_SIZE BUFFER_SIZE -#define DBUFFER_SIZE BUFFER_SIZE +/* This is the default loop count for timing. */ +#define LOOPREPEAT 500000 /* Static variables */ @@ -115,21 +143,108 @@ static int callout_extra; static int callout_fail_count; static int callout_fail_id; static int first_callout; +static int locale_set = 0; static int show_malloc; static int use_utf8; static size_t gotten_store; +/* The buffers grow automatically if very long input lines are encountered. */ + +static int buffer_size = 50000; +static uschar *buffer = NULL; +static uschar *dbuffer = NULL; static uschar *pbuffer = NULL; /************************************************* +* Read or extend an input line * +*************************************************/ + +/* Input lines are read into buffer, but both patterns and data lines can be +continued over multiple input lines. In addition, if the buffer fills up, we +want to automatically expand it so as to be able to handle extremely large +lines that are needed for certain stress tests. When the input buffer is +expanded, the other two buffers must also be expanded likewise, and the +contents of pbuffer, which are a copy of the input for callouts, must be +preserved (for when expansion happens for a data line). This is not the most +optimal way of handling this, but hey, this is just a test program! + +Arguments: + f the file to read + start where in buffer to start (this *must* be within buffer) + +Returns: pointer to the start of new data + could be a copy of start, or could be moved + NULL if no data read and EOF reached +*/ + +static uschar * +extend_inputline(FILE *f, uschar *start) +{ +uschar *here = start; + +for (;;) + { + int rlen = buffer_size - (here - buffer); + + if (rlen > 1000) + { + int dlen; + if (fgets((char *)here, rlen, f) == NULL) + return (here == start)? NULL : start; + dlen = (int)strlen((char *)here); + if (dlen > 0 && here[dlen - 1] == '\n') return start; + here += dlen; + } + + else + { + int new_buffer_size = 2*buffer_size; + uschar *new_buffer = (unsigned char *)malloc(new_buffer_size); + uschar *new_dbuffer = (unsigned char *)malloc(new_buffer_size); + uschar *new_pbuffer = (unsigned char *)malloc(new_buffer_size); + + if (new_buffer == NULL || new_dbuffer == NULL || new_pbuffer == NULL) + { + fprintf(stderr, "pcretest: malloc(%d) failed\n", new_buffer_size); + exit(1); + } + + memcpy(new_buffer, buffer, buffer_size); + memcpy(new_pbuffer, pbuffer, buffer_size); + + buffer_size = new_buffer_size; + + start = new_buffer + (start - buffer); + here = new_buffer + (here - buffer); + + free(buffer); + free(dbuffer); + free(pbuffer); + + buffer = new_buffer; + dbuffer = new_dbuffer; + pbuffer = new_pbuffer; + } + } + +return NULL; /* Control never gets here */ +} + + + + + + + +/************************************************* * Read number from string * *************************************************/ /* We don't use strtoul() because SunOS4 doesn't have it. Rather than mess around with conditional compilation, just do the job by hand. It is only used -for unpicking the -o argument, so just keep it simple. +for unpicking arguments, so just keep it simple. Arguments: str string to be converted @@ -159,19 +274,19 @@ return(result); and returns the value of the character. Argument: - buffer a pointer to the byte vector - vptr a pointer to an int to receive the value + utf8bytes a pointer to the byte vector + vptr a pointer to an int to receive the value -Returns: > 0 => the number of bytes consumed - -6 to 0 => malformed UTF-8 character at offset = (-return) +Returns: > 0 => the number of bytes consumed + -6 to 0 => malformed UTF-8 character at offset = (-return) */ #if !defined NOUTF8 static int -utf82ord(unsigned char *buffer, int *vptr) +utf82ord(unsigned char *utf8bytes, int *vptr) { -int c = *buffer++; +int c = *utf8bytes++; int d = c; int i, j, s; @@ -191,7 +306,7 @@ d = (c & utf8_table3[i]) << s; for (j = 0; j < i; j++) { - c = *buffer++; + c = *utf8bytes++; if ((c & 0xc0) != 0x80) return -(j+1); s -= 6; d |= (c & 0x3f) << s; @@ -222,27 +337,31 @@ and encodes it as a UTF-8 character in 0 Arguments: cvalue the character value - buffer pointer to buffer for result - at least 6 bytes long + utf8bytes pointer to buffer for result - at least 6 bytes long Returns: number of characters placed in the buffer */ +#if !defined NOUTF8 + static int -ord2utf8(int cvalue, uschar *buffer) +ord2utf8(int cvalue, uschar *utf8bytes) { register int i, j; for (i = 0; i < utf8_table1_size; i++) if (cvalue <= utf8_table1[i]) break; -buffer += i; +utf8bytes += i; for (j = i; j > 0; j--) { - *buffer-- = 0x80 | (cvalue & 0x3f); + *utf8bytes-- = 0x80 | (cvalue & 0x3f); cvalue >>= 6; } -*buffer = utf8_table2[i] | cvalue; +*utf8bytes = utf8_table2[i] | cvalue; return i + 1; } +#endif + /************************************************* @@ -269,16 +388,19 @@ while (length-- > 0) { length -= rc - 1; p += rc; - if (c < 256 && isprint(c)) + if (PRINTHEX(c)) { if (f != NULL) fprintf(f, "%c", c); yield++; } else { - int n; - if (f != NULL) fprintf(f, "\\x{%02x}%n", c, &n); - yield += n; + int n = 4; + if (f != NULL) fprintf(f, "\\x{%02x}", c); + yield += (n <= 0x000000ff)? 2 : + (n <= 0x00000fff)? 3 : + (n <= 0x0000ffff)? 4 : + (n <= 0x000fffff)? 5 : 6; } continue; } @@ -287,7 +409,8 @@ while (length-- > 0) /* Not UTF-8, or malformed UTF-8 */ - if (isprint(c = *(p++))) + c = *p++; + if (PRINTHEX(c)) { if (f != NULL) fprintf(f, "%c", c); yield++; @@ -461,8 +584,8 @@ if ((rc = pcre_fullinfo(re, study, optio * Byte flipping function * *************************************************/ -static long int -byteflip(long int value, int n) +static unsigned long int +byteflip(unsigned long int value, int n) { if (n == 2) return ((value & 0x00ff) << 8) | ((value & 0xff00) >> 8); return ((value & 0x000000ff) << 24) | @@ -526,6 +649,65 @@ return count; /************************************************* +* Check newline indicator * +*************************************************/ + +/* This is used both at compile and run-time to check for escapes, where +xxx is LF, CR, CRLF, or ANY. Print a message and return 0 if there is no match. + +Arguments: + p points after the leading '<' + f file for error message + +Returns: appropriate PCRE_NEWLINE_xxx flags, or 0 +*/ + +static int +check_newline(uschar *p, FILE *f) +{ +if (strncmp((char *)p, "cr>", 3) == 0) return PCRE_NEWLINE_CR; +if (strncmp((char *)p, "lf>", 3) == 0) return PCRE_NEWLINE_LF; +if (strncmp((char *)p, "crlf>", 5) == 0) return PCRE_NEWLINE_CRLF; +if (strncmp((char *)p, "any>", 4) == 0) return PCRE_NEWLINE_ANY; +fprintf(f, "Unknown newline type at: <%s\n", p); +return 0; +} + + + +/************************************************* +* Usage function * +*************************************************/ + +static void +usage(void) +{ +printf("Usage: pcretest [options] [ []]\n"); +printf(" -b show compiled code (bytecode)\n"); +printf(" -C show PCRE compile-time options and exit\n"); +printf(" -d debug: show compiled code and information (-b and -i)\n"); +#if !defined NODFA +printf(" -dfa force DFA matching for all subjects\n"); +#endif +printf(" -help show usage information\n"); +printf(" -i show information about compiled patterns\n" + " -m output memory used information\n" + " -o set size of offsets vector to \n"); +#if !defined NOPOSIX +printf(" -p use POSIX interface\n"); +#endif +printf(" -q quiet: do not output PCRE version number at start\n"); +printf(" -S set stack size to megabytes\n"); +printf(" -s output store (memory) used information\n" + " -t time compilation and execution\n"); +printf(" -t time compilation and execution, repeating times\n"); +printf(" -tm time execution (matching) only\n"); +printf(" -tm time execution (matching) only, repeating times\n"); +} + + + +/************************************************* * Main Program * *************************************************/ @@ -540,6 +722,7 @@ int options = 0; int study_options = 0; int op = 1; int timeit = 0; +int timeitm = 0; int showinfo = 0; int showstore = 0; int quiet = 0; @@ -553,27 +736,37 @@ int debug = 0; int done = 0; int all_use_dfa = 0; int yield = 0; +int stack_size; + +/* These vectors store, end-to-end, a list of captured substring names. Assume +that 1024 is plenty long enough for the few names we'll be testing. */ -unsigned char *buffer; -unsigned char *dbuffer; +uschar copynames[1024]; +uschar getnames[1024]; + +uschar *copynamesptr; +uschar *getnamesptr; /* Get buffers from malloc() so that Electric Fence will check their misuse -when I am debugging. */ +when I am debugging. They grow automatically when very long lines are read. */ -buffer = (unsigned char *)malloc(BUFFER_SIZE); -dbuffer = (unsigned char *)malloc(DBUFFER_SIZE); -pbuffer = (unsigned char *)malloc(PBUFFER_SIZE); - -/* The outfile variable is static so that new_malloc can use it. The _setmode() -stuff is some magic that I don't understand, but which apparently does good -things in Windows. It's related to line terminations. */ +buffer = (unsigned char *)malloc(buffer_size); +dbuffer = (unsigned char *)malloc(buffer_size); +pbuffer = (unsigned char *)malloc(buffer_size); -#if defined(_WIN32) || defined(WIN32) -_setmode( _fileno( stdout ), 0x8000 ); -#endif /* defined(_WIN32) || defined(WIN32) */ +/* The outfile variable is static so that new_malloc can use it. */ outfile = stdout; +/* The following _setmode() stuff is some Windows magic that tells its runtime +library to translate CRLF into a single LF character. At least, that's what +I've been told: never having used Windows I take this all on trust. Originally +it set 0x8000, but then I was advised that _O_BINARY was better. */ + +#if defined(_WIN32) || defined(WIN32) +_setmode( _fileno( stdout ), _O_BINARY ); +#endif + /* Scan options */ while (argc > 1 && argv[op][0] == '-') @@ -582,8 +775,8 @@ while (argc > 1 && argv[op][0] == '-') if (strcmp(argv[op], "-s") == 0 || strcmp(argv[op], "-m") == 0) showstore = 1; - else if (strcmp(argv[op], "-t") == 0) timeit = 1; else if (strcmp(argv[op], "-q") == 0) quiet = 1; + else if (strcmp(argv[op], "-b") == 0) debug = 1; else if (strcmp(argv[op], "-i") == 0) showinfo = 1; else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1; #if !defined NODFA @@ -596,6 +789,42 @@ while (argc > 1 && argv[op][0] == '-') op++; argc--; } + else if (strcmp(argv[op], "-t") == 0 || strcmp(argv[op], "-tm") == 0) + { + int both = argv[op][2] == 0; + int temp; + if (argc > 2 && (temp = get_value((unsigned char *)argv[op+1], &endptr), + *endptr == 0)) + { + timeitm = temp; + op++; + argc--; + } + else timeitm = LOOPREPEAT; + if (both) timeit = timeitm; + } + else if (strcmp(argv[op], "-S") == 0 && argc > 2 && + ((stack_size = get_value((unsigned char *)argv[op+1], &endptr)), + *endptr == 0)) + { +#if defined(_WIN32) || defined(WIN32) + printf("PCRE: -S not supported on this OS\n"); + exit(1); +#else + int rc; + struct rlimit rlim; + getrlimit(RLIMIT_STACK, &rlim); + rlim.rlim_cur = stack_size * 1024 * 1024; + rc = setrlimit(RLIMIT_STACK, &rlim); + if (rc != 0) + { + printf("PCRE: setrlimit() failed with error %d\n", rc); + exit(1); + } + op++; + argc--; +#endif + } #if !defined NOPOSIX else if (strcmp(argv[op], "-p") == 0) posix = 1; #endif @@ -609,7 +838,9 @@ while (argc > 1 && argv[op][0] == '-') (void)pcre_config(PCRE_CONFIG_UNICODE_PROPERTIES, &rc); printf(" %sUnicode properties support\n", rc? "" : "No "); (void)pcre_config(PCRE_CONFIG_NEWLINE, &rc); - printf(" Newline character is %s\n", (rc == '\r')? "CR" : "LF"); + printf(" Newline sequence is %s\n", (rc == '\r')? "CR" : + (rc == '\n')? "LF" : (rc == ('\r'<<8 | '\n'))? "CRLF" : + (rc == -1)? "ANY" : "???"); (void)pcre_config(PCRE_CONFIG_LINK_SIZE, &rc); printf(" Internal link size = %d\n", rc); (void)pcre_config(PCRE_CONFIG_POSIX_MALLOC_THRESHOLD, &rc); @@ -622,23 +853,16 @@ while (argc > 1 && argv[op][0] == '-') printf(" Match recursion uses %s\n", rc? "stack" : "heap"); exit(0); } + else if (strcmp(argv[op], "-help") == 0 || + strcmp(argv[op], "--help") == 0) + { + usage(); + goto EXIT; + } else { printf("** Unknown or malformed option %s\n", argv[op]); - printf("Usage: pcretest [-d] [-i] [-o ] [-p] [-s] [-t] [ []]\n"); - printf(" -C show PCRE compile-time options and exit\n"); - printf(" -d debug: show compiled code; implies -i\n"); -#if !defined NODFA - printf(" -dfa force DFA matching for all subjects\n"); -#endif - printf(" -i show information about compiled pattern\n" - " -m output memory used information\n" - " -o set size of offsets vector to \n"); -#if !defined NOPOSIX - printf(" -p use POSIX interface\n"); -#endif - printf(" -s output store (memory) used information\n" - " -t time compilation and execution\n"); + usage(); yield = 1; goto EXIT; } @@ -662,7 +886,7 @@ if (offsets == NULL) if (argc > 1) { - infile = fopen(argv[op], "rb"); + infile = fopen(argv[op], INPUT_MODE); if (infile == NULL) { printf("** Failed to open %s\n", argv[op]); @@ -673,7 +897,7 @@ if (argc > 1) if (argc > 2) { - outfile = fopen(argv[op+1], "wb"); + outfile = fopen(argv[op+1], OUTPUT_MODE); if (outfile == NULL) { printf("** Failed to open %s\n", argv[op+1]); @@ -718,12 +942,12 @@ while (!done) int do_showinfo = showinfo; int do_showrest = 0; int do_flip = 0; - int erroroffset, len, delimiter; + int erroroffset, len, delimiter, poffset; use_utf8 = 0; if (infile == stdin) printf(" re> "); - if (fgets((char *)buffer, BUFFER_SIZE, infile) == NULL) break; + if (extend_inputline(infile, buffer) == NULL) break; if (infile != stdin) fprintf(outfile, "%s", (char *)buffer); fflush(outfile); @@ -735,7 +959,7 @@ while (!done) if (*p == '<' && strchr((char *)(p+1), '<') == NULL) { - unsigned long int magic; + unsigned long int magic, get_options; uschar sbuf[8]; FILE *f; @@ -783,8 +1007,8 @@ while (!done) /* Need to know if UTF-8 for printing data strings */ - new_info(re, NULL, PCRE_INFO_OPTIONS, &options); - use_utf8 = (options & PCRE_UTF8) != 0; + new_info(re, NULL, PCRE_INFO_OPTIONS, &get_options); + use_utf8 = (get_options & PCRE_UTF8) != 0; /* Now see if there is any following study data */ @@ -828,6 +1052,7 @@ while (!done) } pp = p; + poffset = p - buffer; for(;;) { @@ -838,16 +1063,8 @@ while (!done) pp++; } if (*pp != 0) break; - - len = BUFFER_SIZE - (pp - buffer); - if (len < 256) - { - fprintf(outfile, "** Expression too long - missing delimiter?\n"); - goto SKIP_DATA; - } - if (infile == stdin) printf(" > "); - if (fgets((char *)pp, len, infile) == NULL) + if ((pp = extend_inputline(infile, pp)) == NULL) { fprintf(outfile, "** Unexpected EOF\n"); done = 1; @@ -856,6 +1073,11 @@ while (!done) if (infile != stdin) fprintf(outfile, "%s", (char *)pp); } + /* The buffer may have moved while being extended; reset the start of data + pointer to the correct relative point in the buffer. */ + + p = buffer + poffset; + /* If the first character after the delimiter is backslash, make the pattern end with backslash. This is purely to provide a way of testing for the error message when a pattern ends with backslash. */ @@ -887,12 +1109,14 @@ while (!done) case '+': do_showrest = 1; break; case 'A': options |= PCRE_ANCHORED; break; + case 'B': do_debug = 1; break; case 'C': options |= PCRE_AUTO_CALLOUT; break; case 'D': do_debug = do_showinfo = 1; break; case 'E': options |= PCRE_DOLLAR_ENDONLY; break; case 'F': do_flip = 1; break; case 'G': do_G = 1; break; case 'I': do_showinfo = 1; break; + case 'J': options |= PCRE_DUPNAMES; break; case 'M': log_store = 1; break; case 'N': options |= PCRE_NO_AUTO_CAPTURE; break; @@ -908,14 +1132,16 @@ while (!done) case 'L': ppp = pp; - /* The '\r' test here is so that it works on Windows */ - while (*ppp != '\n' && *ppp != '\r' && *ppp != ' ') ppp++; + /* The '\r' test here is so that it works on Windows. */ + /* The '0' test is just in case this is an unterminated line. */ + while (*ppp != 0 && *ppp != '\n' && *ppp != '\r' && *ppp != ' ') ppp++; *ppp = 0; if (setlocale(LC_CTYPE, (const char *)pp) == NULL) { fprintf(outfile, "** Failed to set locale \"%s\"\n", pp); goto SKIP_DATA; } + locale_set = 1; tables = pcre_maketables(); pp = ppp; break; @@ -927,6 +1153,15 @@ while (!done) *pp = 0; break; + case '<': + { + int x = check_newline(pp, outfile); + if (x == 0) goto SKIP_DATA; + options |= x; + while (*pp++ != '>'); + } + break; + case '\r': /* So that it works in Windows */ case '\n': case ' ': @@ -961,7 +1196,7 @@ while (!done) if (rc != 0) { - (void)regerror(rc, &preg, (char *)buffer, BUFFER_SIZE); + (void)regerror(rc, &preg, (char *)buffer, buffer_size); fprintf(outfile, "Failed: POSIX code %d: %s\n", rc, buffer); goto SKIP_DATA; } @@ -973,19 +1208,19 @@ while (!done) #endif /* !defined NOPOSIX */ { - if (timeit) + if (timeit > 0) { register int i; clock_t time_taken; clock_t start_time = clock(); - for (i = 0; i < LOOPREPEAT; i++) + for (i = 0; i < timeit; i++) { re = pcre_compile((char *)p, options, &error, &erroroffset, tables); if (re != NULL) free(re); } time_taken = clock() - start_time; - fprintf(outfile, "Compile time %.3f milliseconds\n", - (((double)time_taken * 1000.0) / (double)LOOPREPEAT) / + fprintf(outfile, "Compile time %.4f milliseconds\n", + (((double)time_taken * 1000.0) / (double)timeit) / (double)CLOCKS_PER_SEC); } @@ -1002,7 +1237,7 @@ while (!done) { for (;;) { - if (fgets((char *)buffer, BUFFER_SIZE, infile) == NULL) + if (extend_inputline(infile, buffer) == NULL) { done = 1; goto CONTINUE; @@ -1037,17 +1272,17 @@ while (!done) if (do_study) { - if (timeit) + if (timeit > 0) { register int i; clock_t time_taken; clock_t start_time = clock(); - for (i = 0; i < LOOPREPEAT; i++) + for (i = 0; i < timeit; i++) extra = pcre_study(re, study_options, &error); time_taken = clock() - start_time; if (extra != NULL) free(extra); - fprintf(outfile, " Study time %.3f milliseconds\n", - (((double)time_taken * 1000.0) / (double)LOOPREPEAT) / + fprintf(outfile, " Study time %.4f milliseconds\n", + (((double)time_taken * 1000.0) / (double)timeit) / (double)CLOCKS_PER_SEC); } extra = pcre_study(re, study_options, &error); @@ -1090,6 +1325,12 @@ while (!done) SHOW_INFO: + if (do_debug) + { + fprintf(outfile, "------------------------------------------------------------------\n"); + pcre_printint(re, outfile); + } + if (do_showinfo) { unsigned long int get_options, all_options; @@ -1100,12 +1341,6 @@ while (!done) int nameentrysize, namecount; const uschar *nametable; - if (do_debug) - { - fprintf(outfile, "------------------------------------------------------------------\n"); - pcre_printint(re, outfile); - } - new_info(re, NULL, PCRE_INFO_OPTIONS, &get_options); new_info(re, NULL, PCRE_INFO_SIZE, &size); new_info(re, NULL, PCRE_INFO_CAPTURECOUNT, &count); @@ -1163,13 +1398,13 @@ while (!done) if (do_flip) { all_options = byteflip(all_options, sizeof(all_options)); - } + } if ((all_options & PCRE_NOPARTIAL) != 0) fprintf(outfile, "Partial matching not supported\n"); if (get_options == 0) fprintf(outfile, "No options\n"); - else fprintf(outfile, "Options:%s%s%s%s%s%s%s%s%s%s%s%s\n", + else fprintf(outfile, "Options:%s%s%s%s%s%s%s%s%s%s%s%s%s\n", ((get_options & PCRE_ANCHORED) != 0)? " anchored" : "", ((get_options & PCRE_CASELESS) != 0)? " caseless" : "", ((get_options & PCRE_EXTENDED) != 0)? " extended" : "", @@ -1181,14 +1416,34 @@ while (!done) ((get_options & PCRE_UNGREEDY) != 0)? " ungreedy" : "", ((get_options & PCRE_NO_AUTO_CAPTURE) != 0)? " no_auto_capture" : "", ((get_options & PCRE_UTF8) != 0)? " utf8" : "", - ((get_options & PCRE_NO_UTF8_CHECK) != 0)? " no_utf8_check" : ""); + ((get_options & PCRE_NO_UTF8_CHECK) != 0)? " no_utf8_check" : "", + ((get_options & PCRE_DUPNAMES) != 0)? " dupnames" : ""); + + switch (get_options & PCRE_NEWLINE_BITS) + { + case PCRE_NEWLINE_CR: + fprintf(outfile, "Forced newline sequence: CR\n"); + break; + + case PCRE_NEWLINE_LF: + fprintf(outfile, "Forced newline sequence: LF\n"); + break; + + case PCRE_NEWLINE_CRLF: + fprintf(outfile, "Forced newline sequence: CRLF\n"); + break; + + case PCRE_NEWLINE_ANY: + fprintf(outfile, "Forced newline sequence: ANY\n"); + break; - if (((((real_pcre *)re)->options) & PCRE_ICHANGED) != 0) - fprintf(outfile, "Case state changes\n"); + default: + break; + } if (first_char == -1) { - fprintf(outfile, "First char at start or follows \\n\n"); + fprintf(outfile, "First char at start or follows newline\n"); } else if (first_char < 0) { @@ -1199,7 +1454,7 @@ while (!done) int ch = first_char & 255; const char *caseless = ((first_char & REQ_CASELESS) == 0)? "" : " (caseless)"; - if (isprint(ch)) + if (PRINTHEX(ch)) fprintf(outfile, "First char = \'%c\'%s\n", ch, caseless); else fprintf(outfile, "First char = %d%s\n", ch, caseless); @@ -1214,7 +1469,7 @@ while (!done) int ch = need_char & 255; const char *caseless = ((need_char & REQ_CASELESS) == 0)? "" : " (caseless)"; - if (isprint(ch)) + if (PRINTHEX(ch)) fprintf(outfile, "Need char = \'%c\'%s\n", ch, caseless); else fprintf(outfile, "Need char = %d%s\n", ch, caseless); @@ -1250,7 +1505,7 @@ while (!done) fprintf(outfile, "\n "); c = 2; } - if (isprint(i) && i != ' ') + if (PRINTHEX(i) && i != ' ') { fprintf(outfile, "%c ", i); c += 2; @@ -1309,6 +1564,7 @@ while (!done) strerror(errno)); } else fprintf(outfile, "Study data written to %s\n", to_file); + } } fclose(f); @@ -1343,6 +1599,12 @@ while (!done) options = 0; + *copynames = 0; + *getnames = 0; + + copynamesptr = copynames; + getnamesptr = getnames; + pcre_callout = callout; first_callout = 1; callout_extra = 0; @@ -1351,15 +1613,24 @@ while (!done) callout_fail_id = -1; show_malloc = 0; - if (infile == stdin) printf("data> "); - if (fgets((char *)buffer, BUFFER_SIZE, infile) == NULL) + if (extra != NULL) extra->flags &= + ~(PCRE_EXTRA_MATCH_LIMIT|PCRE_EXTRA_MATCH_LIMIT_RECURSION); + + len = 0; + for (;;) { - done = 1; - goto CONTINUE; + if (infile == stdin) printf("data> "); + if (extend_inputline(infile, buffer + len) == NULL) + { + if (len > 0) break; + done = 1; + goto CONTINUE; + } + if (infile != stdin) fprintf(outfile, "%s", (char *)buffer); + len = (int)strlen((char *)buffer); + if (buffer[len-1] == '\n') break; } - if (infile != stdin) fprintf(outfile, "%s", (char *)buffer); - len = (int)strlen((char *)buffer); while (len > 0 && isspace(buffer[len-1])) len--; buffer[len] = 0; if (len == 0) break; @@ -1389,6 +1660,17 @@ while (!done) c -= '0'; while (i++ < 2 && isdigit(*p) && *p != '8' && *p != '9') c = c * 8 + *p++ - '0'; + +#if !defined NOUTF8 + if (use_utf8 && c > 255) + { + unsigned char buff8[8]; + int ii, utn; + utn = ord2utf8(c, buff8); + for (ii = 0; ii < utn - 1; ii++) *q++ = buff8[ii]; + c = buff8[ii]; /* Last byte */ + } +#endif break; case 'x': @@ -1450,14 +1732,14 @@ while (!done) } else if (isalnum(*p)) { - uschar name[256]; - uschar *npp = name; + uschar *npp = copynamesptr; while (isalnum(*p)) *npp++ = *p++; + *npp++ = 0; *npp = 0; - n = pcre_get_stringnumber(re, (char *)name); + n = pcre_get_stringnumber(re, (char *)copynamesptr); if (n < 0) - fprintf(outfile, "no parentheses with name \"%s\"\n", name); - else copystrings |= 1 << n; + fprintf(outfile, "no parentheses with name \"%s\"\n", copynamesptr); + copynamesptr = npp; } else if (*p == '+') { @@ -1518,14 +1800,14 @@ while (!done) } else if (isalnum(*p)) { - uschar name[256]; - uschar *npp = name; + uschar *npp = getnamesptr; while (isalnum(*p)) *npp++ = *p++; + *npp++ = 0; *npp = 0; - n = pcre_get_stringnumber(re, (char *)name); + n = pcre_get_stringnumber(re, (char *)getnamesptr); if (n < 0) - fprintf(outfile, "no parentheses with name \"%s\"\n", name); - else getstrings |= 1 << n; + fprintf(outfile, "no parentheses with name \"%s\"\n", getnamesptr); + getnamesptr = npp; } continue; @@ -1564,6 +1846,28 @@ while (!done) options |= PCRE_PARTIAL; continue; + case 'Q': + while(isdigit(*p)) n = n * 10 + *p++ - '0'; + if (extra == NULL) + { + extra = (pcre_extra *)malloc(sizeof(pcre_extra)); + extra->flags = 0; + } + extra->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; + extra->match_limit_recursion = n; + continue; + + case 'q': + while(isdigit(*p)) n = n * 10 + *p++ - '0'; + if (extra == NULL) + { + extra = (pcre_extra *)malloc(sizeof(pcre_extra)); + extra->flags = 0; + } + extra->flags |= PCRE_EXTRA_MATCH_LIMIT; + extra->match_limit = n; + continue; + #if !defined NODFA case 'R': options |= PCRE_DFA_RESTART; @@ -1581,6 +1885,15 @@ while (!done) case '?': options |= PCRE_NO_UTF8_CHECK; continue; + + case '<': + { + int x = check_newline(p, outfile); + if (x == 0) goto NEXT_DATA; + options |= x; + while (*p++ != '>'); + } + continue; } *q++ = c; } @@ -1611,7 +1924,7 @@ while (!done) if (rc != 0) { - (void)regerror(rc, &preg, (char *)buffer, BUFFER_SIZE); + (void)regerror(rc, &preg, (char *)buffer, buffer_size); fprintf(outfile, "No match: POSIX code %d: %s\n", rc, buffer); } else if ((((const pcre *)preg.re_pcre)->options & PCRE_NO_AUTO_CAPTURE) @@ -1650,7 +1963,7 @@ while (!done) for (;; gmatched++) /* Loop for /g or /G */ { - if (timeit) + if (timeitm > 0) { register int i; clock_t time_taken; @@ -1660,7 +1973,7 @@ while (!done) if (all_use_dfa || use_dfa) { int workspace[1000]; - for (i = 0; i < LOOPREPEAT; i++) + for (i = 0; i < timeitm; i++) count = pcre_dfa_exec(re, NULL, (char *)bptr, len, start_offset, options | g_notempty, use_offsets, use_size_offsets, workspace, sizeof(workspace)/sizeof(int)); @@ -1668,13 +1981,13 @@ while (!done) else #endif - for (i = 0; i < LOOPREPEAT; i++) + for (i = 0; i < timeitm; i++) count = pcre_exec(re, extra, (char *)bptr, len, start_offset, options | g_notempty, use_offsets, use_size_offsets); time_taken = clock() - start_time; - fprintf(outfile, "Execute time %.3f milliseconds\n", - (((double)time_taken * 1000.0) / (double)LOOPREPEAT) / + fprintf(outfile, "Execute time %.4f milliseconds\n", + (((double)time_taken * 1000.0) / (double)timeitm) / (double)CLOCKS_PER_SEC); } @@ -1690,7 +2003,7 @@ while (!done) extra->flags = 0; } - count = check_match_limit(re, extra, bptr, len, start_offset, + (void)check_match_limit(re, extra, bptr, len, start_offset, options|g_notempty, use_offsets, use_size_offsets, PCRE_EXTRA_MATCH_LIMIT, &(extra->match_limit), PCRE_ERROR_MATCHLIMIT, "match()"); @@ -1750,7 +2063,28 @@ while (!done) if (count >= 0) { - int i; + int i, maxcount; + +#if !defined NODFA + if (all_use_dfa || use_dfa) maxcount = use_size_offsets/2; else +#endif + maxcount = use_size_offsets/3; + + /* This is a check against a lunatic return value. */ + + if (count > maxcount) + { + fprintf(outfile, + "** PCRE error: returned count %d is too big for offset size %d\n", + count, use_size_offsets); + count = use_size_offsets/3; + if (do_g || do_G) + { + fprintf(outfile, "** /%c loop abandoned\n", do_g? 'g' : 'G'); + do_g = do_G = FALSE; /* Break g/G loop */ + } + } + for (i = 0; i < count * 2; i += 2) { if (use_offsets[i] < 0) @@ -1778,7 +2112,7 @@ while (!done) { if ((copystrings & (1 << i)) != 0) { - char copybuffer[16]; + char copybuffer[256]; int rc = pcre_copy_substring((char *)bptr, use_offsets, count, i, copybuffer, sizeof(copybuffer)); if (rc < 0) @@ -1788,6 +2122,19 @@ while (!done) } } + for (copynamesptr = copynames; + *copynamesptr != 0; + copynamesptr += (int)strlen((char*)copynamesptr) + 1) + { + char copybuffer[256]; + int rc = pcre_copy_named_substring(re, (char *)bptr, use_offsets, + count, (char *)copynamesptr, copybuffer, sizeof(copybuffer)); + if (rc < 0) + fprintf(outfile, "copy substring %s failed %d\n", copynamesptr, rc); + else + fprintf(outfile, " C %s (%d) %s\n", copybuffer, rc, copynamesptr); + } + for (i = 0; i < 32; i++) { if ((getstrings & (1 << i)) != 0) @@ -1800,12 +2147,27 @@ while (!done) else { fprintf(outfile, "%2dG %s (%d)\n", i, substring, rc); - /* free((void *)substring); */ pcre_free_substring(substring); } } } + for (getnamesptr = getnames; + *getnamesptr != 0; + getnamesptr += (int)strlen((char*)getnamesptr) + 1) + { + const char *substring; + int rc = pcre_get_named_substring(re, (char *)bptr, use_offsets, + count, (char *)getnamesptr, &substring); + if (rc < 0) + fprintf(outfile, "copy substring %s failed %d\n", getnamesptr, rc); + else + { + fprintf(outfile, " G %s (%d) %s\n", substring, rc, getnamesptr); + pcre_free_substring(substring); + } + } + if (getlist) { const char **stringlist; @@ -1905,6 +2267,8 @@ while (!done) len -= use_offsets[1]; } } /* End of loop for /g and /G */ + + NEXT_DATA: continue; } /* End of loop for data lines */ CONTINUE: @@ -1919,6 +2283,7 @@ while (!done) { new_free((void *)tables); setlocale(LC_CTYPE, "C"); + locale_set = 0; } } diff -Nurp tin-1.9.1/pcre/perltest tin-1.9.2/pcre/perltest --- tin-1.9.1/pcre/perltest 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/perltest 2006-12-19 10:31:35.000000000 +0100 @@ -2,13 +2,12 @@ # Program for testing regular expressions with perl to check that PCRE handles # them the same. This is the version that supports /8 for UTF-8 testing. As it -# stands, it requires at least Perl 5.8 for UTF-8 support. For Perl 5.6, it -# can be used as is for non-UTF-8 testing, but you have to uncomment the -# "use utf8" lines in order to to UTF-8 stuff (and you mustn't uncomment them -# for non-UTF-8 use). - -use locale; +# stands, it requires at least Perl 5.8 for UTF-8 support. However, it needs to +# have "use utf8" at the start for running the UTF-8 tests, but *not* for the +# other tests. The only way I've found for doing this is to cat this line in +# explicitly in the RunPerlTest script. +# use locale; # With this included, \x0b matches \s! # Function for turning a string into a string of printing chars. There are # currently problems with UTF-8 strings; this fudges round them. @@ -18,7 +17,6 @@ my($t) = ""; if ($utf8) { -# use utf8; <=============== For UTF-8 in Perl 5.6 @p = unpack('U*', $_[0]); foreach $c (@p) { @@ -40,7 +38,6 @@ $t; } - # Read lines from named file or stdin and write to named file or stdout; lines # consist of a regular expression, in delimiters and optionally followed by # options, followed by a set of test data, terminated by an empty line. @@ -90,23 +87,13 @@ for (;;) $showrest = ($pattern =~ s/\+(?=[a-z]*$)//); - # The private /8 modifier means "operate in UTF-8". Currently, Perl - # has bugs that we try to work around using this flag. + # Remove /8 from a UTF-8 pattern. - $utf8 = ($pattern =~ s/8(?=[a-z]*$)//); + $utf8 = $pattern =~ s/8(?=[a-z]*$)//; # Check that the pattern is valid - if ($utf8) - { -# use utf8; <=============== For UTF-8 in Perl 5.6 - eval "\$_ =~ ${pattern}"; - } - else - { - eval "\$_ =~ ${pattern}"; - } - + eval "\$_ =~ ${pattern}"; if ($@) { printf $outfile "Error: $@"; @@ -140,7 +127,6 @@ for (;;) s/^\s+//; last if ($_ eq ""); - $x = eval "\"$_\""; # To get escapes processed # Empty array for holding results, then do the matching. @@ -166,15 +152,7 @@ for (;;) "push \@subs,\$16;" . "push \@subs,\$'; }"; - if ($utf8) - { -# use utf8; <=============== For UTF-8 in Perl 5.6 - eval "${cmd} (\$x =~ ${pattern}) {" . $pushes; - } - else - { - eval "${cmd} (\$x =~ ${pattern}) {" . $pushes; - } + eval "${cmd} (\$x =~ ${pattern}) {" . $pushes; if ($@) { diff -Nurp tin-1.9.1/pcre/testdata/testinput1 tin-1.9.2/pcre/testdata/testinput1 --- tin-1.9.1/pcre/testdata/testinput1 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput1 2006-12-19 10:31:35.000000000 +0100 @@ -1297,7 +1297,7 @@ abc /^a b - c/x + c/x abc /^(a|)\1*b/ @@ -1453,11 +1453,6 @@ /{4,5a}bc/ {4,5a}bc -/^a.b/ - a\rb - *** Failers - a\nb - /abc$/ abc abc\n @@ -1473,11 +1468,11 @@ /(abc)\323/ abc\xd3 -/(abc)\500/ +/(abc)\100/ abc\x40 abc\100 -/(abc)\5000/ +/(abc)\1000/ abc\x400 abc\x40\x30 abc\1000 @@ -1499,8 +1494,8 @@ /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ abcdefghijk\12S -/ab\gdef/ - abgdef +/ab\hdef/ + abhdef /a{0}bc/ bc @@ -3381,9 +3376,14 @@ cdaccb /^(?:a?b?)*$/ + \ + a + ab + aaa *** Failers dbcb a-- + aa-- /((?s)^a(.))((?m)^b$)/ a\nb\nc\n @@ -3846,4 +3846,176 @@ ** Failers abcddefg +/(?a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?:a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/\Z/g + abc\n + +/^(?s)(?>.*)(?/ +/<.*>/I abcghinop -/<.*?>/ +/<.*?>/I abcghinop -/<.*>/U +/<.*>/IU abcghinop -/(?U)<.*>/ +/(?U)<.*>/I abcghinop -/<.*?>/U +/<.*?>/IU abcghinop -/={3,}/U +/={3,}/IU abc========def -/(?U)={3,}?/ +/(?U)={3,}?/I abc========def -/(?^abc)/m +/(?>^abc)/Im abc def\nabc *** Failers @@ -293,20 +295,20 @@ /The next three are in testinput2 because they have variable length branches/ -/(?<=bullock|donkey)-cart/ +/(?<=bullock|donkey)-cart/I the bullock-cart a donkey-cart race *** Failers cart horse-and-cart -/(?<=ab(?i)x|y|z)/ +/(?<=ab(?i)x|y|z)/I -/(?>.*)(?<=(abcd)|(xyz))/ +/(?>.*)(?<=(abcd)|(xyz))/I alphabetabcd endingxyz -/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/ +/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I abxyZZ abXyZZ ZZZ @@ -319,24 +321,24 @@ zzz bzz -/(?[^()]+) | (?R) )* \) /xg +/\( ( (?>[^()]+) | (?R) )* \) /Ixg (ab(xy)cd)pqr 1(abcd)(x(y)z)pqr -/\( (?: (?>[^()]+) | (?R) ) \) /x +/\( (?: (?>[^()]+) | (?R) ) \) /Ix (abcd) (ab(xy)cd) (a(b(c)d)e) @@ -636,31 +638,31 @@ *** Failers () -/\( (?: (?>[^()]+) | (?R) )? \) /x +/\( (?: (?>[^()]+) | (?R) )? \) /Ix () 12(abcde(fsh)xyz(foo(bar))lmno)89 -/\( ( (?>[^()]+) | (?R) )* \) /x +/\( ( (?>[^()]+) | (?R) )* \) /Ix (ab(xy)cd) -/\( ( ( (?>[^()]+) | (?R) )* ) \) /x +/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix (ab(xy)cd) -/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x +/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix (ab(xy)cd) (123ab(xy)cd) -/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x +/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix (ab(xy)cd) (123ab(xy)cd) -/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x +/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix (ab(xy)cd) -/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x +/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix (abcd(xyz

qrs)123) -/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x +/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix (ab(cd)ef) (ab(cd(ef)gh)ij) @@ -712,91 +714,91 @@ /[01[:alpha:]%]/D -/[[.ch.]]/ +/[[.ch.]]/I -/[[=ch=]]/ +/[[=ch=]]/I -/[[:rhubarb:]]/ +/[[:rhubarb:]]/I -/[[:upper:]]/i +/[[:upper:]]/Ii A a -/[[:lower:]]/i +/[[:lower:]]/Ii A a -/((?-i)[[:lower:]])[[:lower:]]/i +/((?-i)[[:lower:]])[[:lower:]]/Ii ab aB *** Failers Ab AB -/[\200-\410]/ +/[\200-\110]/I -/^(?(0)f|b)oo/ +/^(?(0)f|b)oo/I -/This one's here because of the large output vector needed/ +/This one's here because of the large output vector needed/I -/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/ +/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC -/This one's here because Perl does this differently and PCRE can't at present/ +/This one's here because Perl does this differently and PCRE can't at present/I -/(main(O)?)+/ +/(main(O)?)+/I mainmain mainOmain -/These are all cases where Perl does it differently (nested captures)/ +/These are all cases where Perl does it differently (nested captures)/I -/^(a(b)?)+$/ +/^(a(b)?)+$/I aba -/^(aa(bb)?)+$/ +/^(aa(bb)?)+$/I aabbaa -/^(aa|aa(bb))+$/ +/^(aa|aa(bb))+$/I aabbaa -/^(aa(bb)??)+$/ +/^(aa(bb)??)+$/I aabbaa -/^(?:aa(bb)?)+$/ +/^(?:aa(bb)?)+$/I aabbaa -/^(aa(b(b))?)+$/ +/^(aa(b(b))?)+$/I aabbaa -/^(?:aa(b(b))?)+$/ +/^(?:aa(b(b))?)+$/I aabbaa -/^(?:aa(b(?:b))?)+$/ +/^(?:aa(b(?:b))?)+$/I aabbaa -/^(?:aa(bb(?:b))?)+$/ +/^(?:aa(bb(?:b))?)+$/I aabbbaa -/^(?:aa(b(?:bb))?)+$/ +/^(?:aa(b(?:bb))?)+$/I aabbbaa -/^(?:aa(?:b(b))?)+$/ +/^(?:aa(?:b(b))?)+$/I aabbaa -/^(?:aa(?:b(bb))?)+$/ +/^(?:aa(?:b(bb))?)+$/I aabbbaa -/^(aa(b(bb))?)+$/ +/^(aa(b(bb))?)+$/I aabbbaa -/^(aa(bb(bb))?)+$/ +/^(aa(bb(bb))?)+$/I aabbbbaa -/--------------------------------------------------------------------/ +/--------------------------------------------------------------------/I -/#/xMD +/#/IxMD -/a#/xMD +/a#/IxMD /[\s]/D @@ -814,10 +816,10 @@ *** Failers AB -/ (?i)abc/xD +/ (?i)abc/IxD /#this is a comment - (?i)abc/xD + (?i)abc/IxD /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D @@ -852,29 +854,29 @@ /(x)*+/D -/^(\w++|\s++)*$/ +/^(\w++|\s++)*$/I now is the time for all good men to come to the aid of the party *** Failers this is not a line with only words and spaces! -/(\d++)(\w)/ +/(\d++)(\w)/I 12345a *** Failers 12345+ -/a++b/ +/a++b/I aaab -/(a++b)/ +/(a++b)/I aaab -/(a++)b/ +/(a++)b/I aaab -/([^()]++|\([^()]*\))+/ +/([^()]++|\([^()]*\))+/I ((abc(ade)ufh()()x -/\(([^()]++|\([^()]+\))+\)/ +/\(([^()]++|\([^()]+\))+\)/I (abc) (abc(def)xyz) *** Failers @@ -882,13 +884,13 @@ /(abc){1,3}+/D -/a+?+/ +/a+?+/I -/a{2,3}?+b/ +/a{2,3}?+b/I -/(?U)a+?+/ +/(?U)a+?+/I -/a{2,3}?+b/U +/a{2,3}?+b/IU /x(?U)a++b/D xaaaab @@ -902,35 +904,35 @@ /^x(?U)(a+)b/D -/[.x.]/ +/[.x.]/I -/[=x=]/ +/[=x=]/I -/[:x:]/ +/[:x:]/I -/\l/ +/\l/I -/\L/ +/\L/I -/\N{name}/ +/\N{name}/I -/\u/ +/\u/I -/\U/ +/\U/I -/[/ +/[/I -/[a-/ +/[a-/I -/[[:space:]/ +/[[:space:]/I -/[\s]/DM +/[\s]/IDM -/[[:space:]]/DM +/[[:space:]]/IDM -/[[:space:]abcde]/DM +/[[:space:]abcde]/IDM -/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x +/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix <> hij> @@ -940,9 +942,9 @@ *** Failers iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM +|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM -|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM +|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM /(.*)\d+\1/I @@ -961,7 +963,7 @@ /(?=a).*/I -/(?=abc).xyz/iI +/(?=abc).xyz/IiI /(?=abc)(?i).xyz/I @@ -1003,7 +1005,7 @@ /a^b/I -/^a/mI +/^a/Im abcde xy\nabc *** Failers @@ -1015,85 +1017,85 @@ /[ab](?i)cd/IS -/abc(?C)def/ +/abc(?C)def/I abcdef 1234abcdef *** Failers abcxyz abcxyzf -/abc(?C)de(?C1)f/ +/abc(?C)de(?C1)f/I 123abcdef -/(?C1)\dabc(?C2)def/ +/(?C1)\dabc(?C2)def/I 1234abcdef *** Failers abcdef -/(?C255)ab/ +/(?C255)ab/I -/(?C256)ab/ +/(?C256)ab/I -/(?Cab)xx/ +/(?Cab)xx/I -/(?C12vr)x/ +/(?C12vr)x/I -/abc(?C)def/ +/abc(?C)def/I *** Failers \x83\x0\x61bcdef -/(abc)(?C)de(?C1)f/ +/(abc)(?C)de(?C1)f/I 123abcdef 123abcdef\C+ 123abcdef\C- *** Failers 123abcdef\C!1 -/(?C0)(abc(?C1))*/ +/(?C0)(abc(?C1))*/I abcabcabc abcabc\C!1!3 *** Failers abcabcabc\C!1!3 -/(\d{3}(?C))*/ +/(\d{3}(?C))*/I 123\C+ 123456\C+ 123456789\C+ -/((xyz)(?C)p|(?C1)xyzabc)/ +/((xyz)(?C)p|(?C1)xyzabc)/I xyzabc\C+ -/(X)((xyz)(?C)p|(?C1)xyzabc)/ +/(X)((xyz)(?C)p|(?C1)xyzabc)/I Xxyzabc\C+ -/(?=(abc))(?C)abcdef/ +/(?=(abc))(?C)abcdef/I abcdef\C+ -/(?!(abc)(?C1)d)(?C2)abcxyz/ +/(?!(abc)(?C1)d)(?C2)abcxyz/I abcxyz\C+ -/(?<=(abc)(?C))xyz/ +/(?<=(abc)(?C))xyz/I abcxyz\C+ -/a(b+)(c*)(?C1)/ +/a(b+)(c*)(?C1)/I abbbbbccc\C*1 -/a(b+?)(c*?)(?C1)/ +/a(b+?)(c*?)(?C1)/I abbbbbccc\C*1 -/(?C)abc/ +/(?C)abc/I -/(?C)^abc/ +/(?C)^abc/I -/(?C)a|b/S +/(?C)a|b/IS -/(?R)/ +/(?R)/I -/(a|(?R))/ +/(a|(?R))/I -/(ab|(bc|(de|(?R))))/ +/(ab|(bc|(de|(?R))))/I -/x(ab|(bc|(de|(?R))))/ +/x(ab|(bc|(de|(?R))))/I xab xbc xde @@ -1102,18 +1104,18 @@ *** Failers xyab -/(ab|(bc|(de|(?1))))/ +/(ab|(bc|(de|(?1))))/I -/x(ab|(bc|(de|(?1)x)x)x)/ +/x(ab|(bc|(de|(?1)x)x)x)/I -/^([^()]|\((?1)*\))*$/ +/^([^()]|\((?1)*\))*$/I abc a(b)c a(b(c))d *** Failers) a(b(c)d -/^>abc>([^()]|\((?1)*\))*abc>([^()]|\((?1)*\))*abc>123abc>1(2)3abc>(1(2)3)]*+) | (?2)) * >))/x +/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix <> hij> @@ -1154,19 +1156,19 @@ *** Failers a)...(?P=a)bbb(?P>a)d/D -/^\W*(?:(?P(?P.)\W*(?P>one)\W*(?P=two)|)|(?P(?P.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i +/^\W*(?:(?P(?P.)\W*(?P>one)\W*(?P=two)|)|(?P(?P.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii 1221 Satan, oscillate my metallic sonatas! A man, a plan, a canal: Panama! @@ -1187,51 +1189,51 @@ *** Failers The quick brown fox -/((?(R)a|b))\1(?1)?/ +/((?(R)a|b))\1(?1)?/I bb bbaa -/(.*)a/sI +/(.*)a/Is -/(.*)a\1/sI +/(.*)a\1/Is -/(.*)a(b)\2/sI +/(.*)a(b)\2/Is -/((.*)a|(.*)b)z/sI +/((.*)a|(.*)b)z/Is -/((.*)a|(.*)b)z\1/sI +/((.*)a|(.*)b)z\1/Is -/((.*)a|(.*)b)z\2/sI +/((.*)a|(.*)b)z\2/Is -/((.*)a|(.*)b)z\3/sI +/((.*)a|(.*)b)z\3/Is -/((.*)a|^(.*)b)z\3/sI +/((.*)a|^(.*)b)z\3/Is -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is -/(a)(bc)/ND +/(a)(bc)/IND abc -/(?Pa)(bc)/ND +/(?Pa)(bc)/IND abc -/(a)(?Pbc)/ND +/(a)(?Pbc)/IND -/(a+)*zz/ +/(a+)*zz/I aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M aaaaaaaaaaaaaz\M -/(aaa(?C1)bbb|ab)/ +/(aaa(?C1)bbb|ab)/I aaabbb aaabbb\C*0 aaabbb\C*1 aaabbb\C*-1 -/ab(?Pcd)ef(?Pgh)/ +/ab(?Pcd)ef(?Pgh)/I abcdefgh abcdefgh\C1\Gtwo abcdefgh\Cone\Ctwo @@ -1241,20 +1243,20 @@ /(?P)(?P)/D -/(?Pzz)(?Paa)/ +/(?Pzz)(?Paa)/I zzaa\CZ zzaa\CA -/(?Peks)(?Peccs)/ +/(?Peks)(?Peccs)/I -/(?Pabc(?Pdef)(?Pxyz))/ +/(?Pabc(?Pdef)(?Pxyz))/I -"\[((?P\d+)(,(?P>elem))*)\]" +"\[((?P\d+)(,(?P>elem))*)\]"I [10,20,30,5,5,4,4,2,43,23,4234] *** Failers [] -"\[((?P\d+)(,(?P>elem))*)?\]" +"\[((?P\d+)(,(?P>elem))*)?\]"I [10,20,30,5,5,4,4,2,43,23,4234] [] @@ -1266,46 +1268,46 @@ /[ab]{1}+/D -/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i +/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii Baby Bjorn Active Carrier - With free SHIPPING!! -/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/iS +/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS Baby Bjorn Active Carrier - With free SHIPPING!! -/a*.*b/SD +/a*.*b/ISD -/(a|b)*.?c/SD +/(a|b)*.?c/ISD /abc(?C255)de(?C)f/D -/abcde/CD +/abcde/ICD abcde abcdfe -/a*b/CD +/a*b/ICD ab aaaab aaaacb -/a+b/CD +/a+b/ICD ab aaaab aaaacb -/(abc|def)x/CD +/(abc|def)x/ICD abcx defx abcdefzx -/(ab|cd){3,4}/C +/(ab|cd){3,4}/IC ababab abcdabcd abcdcdcdcdcd -/([ab]{,4}c|xy)/CD +/([ab]{,4}c|xy)/ICD Note: that { does NOT introduce a quantifier -/([ab]{1,4}c|xy){4,5}?123/CD +/([ab]{1,4}c|xy){4,5}?123/ICD aacaacaacaacaac123 /\b.*/I @@ -1317,7 +1319,7 @@ /(?!.bcd).*/I Xbcd12345 -/abcde/ +/abcde/I ab\P abc\P abcd\P @@ -1326,7 +1328,7 @@ ** Failers\P the quick brown abxyz fox\P -"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$" +"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 13/05/04\P 13/5/2004\P 02/05/09\P @@ -1356,7 +1358,7 @@ /[abc]+DE/I -/[abc]?123/ +/[abc]?123/I 123\P a\P b\P @@ -1364,7 +1366,7 @@ c12\P c123\P -/^(?:\d){3,5}X/ +/^(?:\d){3,5}X/I 1\P 123\P 123X @@ -1376,118 +1378,756 @@ 1X 123456\P -/abc/>testsavedregex +/abc/I>testsavedregex testsavedregex +/abc/IF>testsavedregex testsavedregex +/(a|b)/IS>testsavedregex testsavedregex +/(a|b)/ISF>testsavedregex (.)*~smg +~<(\w+)/?>(.)*~smgI \n\n\nPartner der LCO\nde\nPartner der LINEAS Consulting\nGmbH\nLINEAS Consulting GmbH Hamburg\nPartnerfirmen\n30 days\nindex,follow\n\nja\n3\nPartner\n\n\nLCO\nLINEAS Consulting\n15.10.2003\n\n\n\n\nDie Partnerfirmen der LINEAS Consulting\nGmbH\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 /^a/IF -/line\nbreak/ +/line\nbreak/I this is a line\nbreak line one\nthis is a line\nbreak in the second line -/line\nbreak/f +/line\nbreak/If this is a line\nbreak ** Failers line one\nthis is a line\nbreak in the second line -/line\nbreak/mf +/line\nbreak/Imf this is a line\nbreak ** Failers line one\nthis is a line\nbreak in the second line -/ab.cd/P +/ab.cd/IP ab-cd ab=cd ** Failers ab\ncd -/ab.cd/Ps +/ab.cd/IPs ab-cd ab=cd ab\ncd -/(?i)(?-i)AbCd/ +/(?i)(?-i)AbCd/I AbCd ** Failers abcd -/a{11111111111111111111}/ +/a{11111111111111111111}/I -/(){64294967295}/ +/(){64294967295}/I -/(){2,4294967295}/ +/(){2,4294967295}/I -"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B" +"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I abcdefghijklAkB -"(?Pa)(?Pb)(?Pc)(?Pd)(?Pe)(?Pf)(?Pg)(?Ph)(?Pi)(?Pj)(?Pk)(?Pl)A\11B" +"(?Pa)(?Pb)(?Pc)(?Pd)(?Pe)(?Pf)(?Pg)(?Ph)(?Pi)(?Pj)(?Pk)(?Pl)A\11B"I abcdefghijklAkB -"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B" +"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I abcdefghijklAkB -"(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)" +"(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)"I aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"(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)(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)(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)(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)(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)(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)"I aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/[^()]*(?:\((?R)\)[^()]*)*/ +/[^()]*(?:\((?R)\)[^()]*)*/I (this(and)that (this(and)that) (this(and)that)stuff -/[^()]*(?:\((?>(?R))\)[^()]*)*/ +/[^()]*(?:\((?>(?R))\)[^()]*)*/I (this(and)that (this(and)that) -/[^()]*(?:\((?R)\))*[^()]*/ +/[^()]*(?:\((?R)\))*[^()]*/I (this(and)that (this(and)that) -/(?:\((?R)\))*[^()]*/ +/(?:\((?R)\))*[^()]*/I (this(and)that (this(and)that) ((this)) -/(?:\((?R)\))|[^()]*/ +/(?:\((?R)\))|[^()]*/I (this(and)that (this(and)that) (this) ((this)) -/a(b)c/PN +/a(b)c/IPN abc -/a(?Pb)c/PN +/a(?Pb)c/IPN abc -/\x{100}/ +/\x{100}/I + +/\x{0000ff}/I + +/^((?Pa1)|(?Pa2)b)/I + +/^((?Pa1)|(?Pa2)b)/IJ + a1b\CA + a2b\CA + ** Failers + a1b\CZ\CA + +/^(?Pa)(?Pb)/IJ + ab\CA + +/^(?Pa)(?Pb)|cd/IJ + ab\CA + cd\CA + +/^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ + cdefgh\CA + +/^((?Pa1)|(?Pa2)b)/IJ + a1b\GA + a2b\GA + ** Failers + a1b\GZ\GA + +/^(?Pa)(?Pb)/IJ + ab\GA + +/^(?Pa)(?Pb)|cd/IJ + ab\GA + cd\GA + +/^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ + cdefgh\GA + +/(?J)^((?Pa1)|(?Pa2)b)/I + a1b\CA + a2b\CA + +/^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I + +/ In this next test, J is not set at the outer level; consequently it isn't +set in the pattern's options; consequently pcre_get_named_substring() produces +a random value. /Ix + +/^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I + a bc d\CA\CB\CC + +/^(?Pa)?(?(A)a|b)/I + aabc + bc + ** Failers + abc + +/(?:(?(ZZ)a|b)(?PX))+/I + bXaX + +/(?:(?(2y)a|b)(X))+/I + +/(?:(?(ZA)a|b)(?PX))+/I + +/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?PX))+/I + bbXaaX + +/(?:(?(ZZ)a|\(b\))\\(?PX))+/I + (b)\\Xa\\X + +/(?PX|Y))+/I + bXXaYYaY + bXYaXXaX + +/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?PX|Y))+/I + bXXaYYaY + +/\777/I + +/\s*,\s*/IS + \x0b,\x0b + \x0c,\x0d + +/^abc/Im + xyz\nabc + xyz\nabc\ + xyz\r\nabc\ + xyz\rabc\ + xyz\r\nabc\ + ** Failers + xyz\nabc\ + xyz\r\nabc\ + xyz\nabc\ + xyz\rabc\ + xyz\rabc\ + +/abc$/Im + xyzabc + xyzabc\n + xyzabc\npqr + xyzabc\r\ + xyzabc\rpqr\ + xyzabc\r\n\ + xyzabc\r\npqr\ + ** Failers + xyzabc\r + xyzabc\rpqr + xyzabc\r\n + xyzabc\r\npqr + +/^abc/Im + xyz\rabcdef + xyz\nabcdef\ + ** Failers + xyz\nabcdef + +/^abc/Im + xyz\nabcdef + xyz\rabcdef\ + ** Failers + xyz\rabcdef + +/^abc/Im + xyz\r\nabcdef + xyz\rabcdef\ + ** Failers + xyz\rabcdef + +/^abc/Im + +/abc/I + xyz\rabc\ + abc + +/.*/I + abc\ndef + abc\rdef + abc\r\ndef + \abc\ndef + \abc\rdef + \abc\r\ndef + \abc\ndef + \abc\rdef + \abc\r\ndef + +/\w+(.)(.)?def/Is + abc\ndef + abc\rdef + abc\r\ndef + ++((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I + /* this is a C style comment */\M + +/(?P25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I + +/()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + (.(.))/Ix + XY\O400 + +/(a*b|(?i:c*(?-i)d))/IS + +/()[ab]xyz/IS + +/(|)[ab]xyz/IS + +/(|c)[ab]xyz/IS + +/(|c?)[ab]xyz/IS + +/(d?|c?)[ab]xyz/IS + +/(d?|c)[ab]xyz/IS + +/^a*b\d/D + +/^a*+b\d/D + +/^a*?b\d/D + +/^a+A\d/D + aaaA5 + ** Failers + aaaa5 + +/^a*A\d/IiD + aaaA5 + aaaa5 + +/(a*|b*)[cd]/IS + +/(a+|b*)[cd]/IS + +/(a*|b+)[cd]/IS + +/(a+|b+)[cd]/IS + +/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( + ((( + a + )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + ))) +/Ix + large nest + +/a*\d/B + +/a*\D/B + +/0*\d/B + +/0*\D/B + +/a*\s/B + +/a*\S/B + +/ *\s/B + +/ *\S/B + +/a*\w/B + +/a*\W/B + +/=*\w/B + +/=*\W/B + +/\d*a/B + +/\d*2/B + +/\d*\d/B + +/\d*\D/B + +/\d*\s/B + +/\d*\S/B + +/\d*\w/B + +/\d*\W/B + +/\D*a/B + +/\D*2/B + +/\D*\d/B + +/\D*\D/B + +/\D*\s/B + +/\D*\S/B + +/\D*\w/B + +/\D*\W/B + +/\s*a/B + +/\s*2/B + +/\s*\d/B + +/\s*\D/B + +/\s*\s/B + +/\s*\S/B + +/\s*\w/B + +/\s*\W/B + +/\S*a/B + +/\S*2/B + +/\S*\d/B + +/\S*\D/B + +/\S*\s/B + +/\S*\S/B + +/\S*\w/B + +/\S*\W/B + +/\w*a/B + +/\w*2/B + +/\w*\d/B + +/\w*\D/B + +/\w*\s/B + +/\w*\S/B + +/\w*\w/B + +/\w*\W/B + +/\W*a/B + +/\W*2/B + +/\W*\d/B + +/\W*\D/B + +/\W*\s/B + +/\W*\S/B + +/\W*\w/B + +/\W*\W/B + +/[^a]+a/B + +/[^a]+a/Bi + +/[^a]+A/Bi + +/[^a]+b/B + +/[^a]+\d/B + +/a*[^a]/B + +/(?Px)(?Py)/I + xy\Cabc\Cxyz + +/(?x)(?'xyz'y)/I + xy\Cabc\Cxyz + +/(?x)(?'xyz>y)/I + +/(?P'abc'x)(?Py)/I + +/^(?:(?(ZZ)a|b)(?X))+/ + bXaX + bXbX + ** Failers + aXaX + aXbX + +/^(?P>abc)(?xxx)/ + +/^(?P>abc)(?x|y)/ + xx + xy + yy + yx + +/^(?P>abc)(?Px|y)/ + xx + xy + yy + yx + +/^((?(abc)a|b)(?x|y))+/ + bxay + bxby + ** Failers + axby + +/^(((?P=abc)|X)(?x|y))+/ + XxXxxx + XxXyyx + XxXyxx + ** Failers + x + +/^(?1)(abc)/ + abcabc + +/^(?:(?:\1|X)(a|b))+/ + Xaaa + Xaba + +/^[\E\Qa\E-\Qz\E]+/B + +/^[a\Q]bc\E]/B + +/^[a-\Q\E]/B + +/^(?P>abc)[()](?)/B + +/^((?(abc)y)[()](?Px))+/B + (xy)x + +/^(?P>abc)\Q()\E(?)/B + +/^(?P>abc)[a\Q(]\E(](?)/B + +/^(?P>abc) # this is (a comment) + (?)/Bx + +/^\W*(?:(?(?.)\W*(?&one)\W*\k|)|(?(?.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii + 1221 + Satan, oscillate my metallic sonatas! + A man, a plan, a canal: Panama! + Able was I ere I saw Elba. + *** Failers + The quick brown fox + +/(?=(\w+))\1:/I + abcd: + +/(?=(?'abc'\w+))\k:/I + abcd: + +/(?'abc'\w+):\k{2}/ + a:aaxyz + ab:ababxyz + ** Failers + a:axyz + ab:abxyz + +/(?'abc'a|b)(?d|e)\k{2}/J + adaa + ** Failers + addd + adbb + +/(?'abc'a|b)(?d|e)(?&abc){2}/J + bdaa + bdab + ** Failers + bddd + +/^(?a)? (?()b|c) (?('ab')d|e)/x + abd + ce + +/(?( (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x + abcabc1Xabc2XabcXabcabc + +/(? (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x + +/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x + abcabc1Xabc2XabcXabcabc + +/^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) /x + abcd + +/(?(?&NAME_PAT))\s+(?(?&ADDRESS_PAT)) + (?(DEFINE) + (?[a-z]+) + (?\d+) + )/x + metcalfe 33 + +/^(?(DEFINE) abc | xyz ) /x + +/(?(DEFINE) abc) xyz/xI + +/(?(DEFINE) abc){3} xyz/x + +/(a|)*\d/ + \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/^a.b/ + a\rb + a\nb\ + ** Failers + a\nb + a\nb\ + a\rb\ + a\rb\ + +/^abc./mgx + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK + +/abc.$/mgx + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + +/a/ + +/a/ + +/^a\Rb/ + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + ** Failers + a\n\rb + +/^a\R*b/ + ab + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb + +/^a\R+b/ + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb + ** Failers + ab + +/^a\R{1,3}b/ + a\nb + a\n\rb + a\n\r\x85b + a\r\n\r\nb + a\r\n\r\n\r\nb + a\n\r\n\rb + a\n\n\r\nb + ** Failers + a\n\n\n\rb + a\r + +/^a[\R]b/ + aRb + ** Failers + a\nb + +/(?&abc)X(?P)/I + abcPXP123 + +/(?1)X(?P)/I + abcPXP123 + +/(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ + 1.2.3.4 + 131.111.10.206 + 10.0.0.0 + ** Failers + 10.6 + 455.3.4.5 + +/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ + 1.2.3.4 + 131.111.10.206 + 10.0.0.0 + ** Failers + 10.6 + 455.3.4.5 + +/(?:a(?&abc)b)*(?x)/ + 123axbaxbaxbx456 + 123axbaxbaxb456 + +/(?:a(?&abc)b){1,5}(?x)/ + 123axbaxbaxbx456 + +/(?:a(?&abc)b){2,5}(?x)/ + 123axbaxbaxbx456 + +/(?:a(?&abc)b){2,}(?x)/ + 123axbaxbaxbx456 + +/(abc)(?i:(?1))/ + defabcabcxyz + DEFabcABCXYZ + +/(abc)(?:(?i)(?1))/ + defabcabcxyz + DEFabcABCXYZ + +/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ + ababababbbabZXXXX + +/^(a)\g-2/ + +/^(a)\g/ + +/^(a)\g{0}/ + +/^(a)\g{3/ + +/^(a)\g{4a}/ + +/^a.b/ + a\rb + *** Failers + a\nb + +/.+foo/ + afoo + ** Failers + \r\nfoo + \nfoo + +/.+foo/ + afoo + \nfoo + ** Failers + \r\nfoo + +/.+foo/ + afoo + ** Failers + \nfoo + \r\nfoo -/\x{0000ff}/ +/.+foo/s + afoo + \r\nfoo + \nfoo / End of testinput2 / diff -Nurp tin-1.9.1/pcre/testdata/testinput4 tin-1.9.2/pcre/testdata/testinput4 --- tin-1.9.1/pcre/testdata/testinput4 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput4 2006-12-19 10:31:35.000000000 +0100 @@ -510,7 +510,17 @@ /^\x{85}$/8i \x{85} +/^ሴ/8 + ሴ + /^\ሴ/8 ሴ +"(?s)(.{1,5})"8 + abcdefg + ab + +/a*\x{100}*\w/8 + a + / End of testinput4 / diff -Nurp tin-1.9.1/pcre/testdata/testinput5 tin-1.9.2/pcre/testdata/testinput5 --- tin-1.9.1/pcre/testdata/testinput5 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput5 2006-12-19 10:31:35.000000000 +0100 @@ -265,4 +265,94 @@ /^\ሴ/8D +/\777/I + +/\777/8I + \x{1ff} + \777 + +/\x{100}*\d/8D + +/\x{100}*\s/8D + +/\x{100}*\w/8D + +/\x{100}*\D/8D + +/\x{100}*\S/8D + +/\x{100}*\W/8D + +/\x{100}+\x{200}/8D + +/\x{100}+X/8D + +/X+\x{200}/8D + +/()()()()()()()()()() + ()()()()()()()()()() + ()()()()()()()()()() + ()()()()()()()()()() + A (x) (?41) B/8x + AxxB + +/^[\x{100}\E-\Q\E\x{150}]/B8 + +/^[\QÄ€\E-\QÅ\E]/B8 + +/^[\QÄ€\E-\QÅ\E/B8 + +/^abc./mgx8 + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK + +/abc.$/mgx8 + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 + +/^a\Rb/8 + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x{85}b + a\x{2028}b + a\x{2029}b + ** Failers + a\n\rb + +/^a\R*b/8 + ab + a\nb + a\rb + a\r\nb + a\x0bb + a\x0c\x{2028}\x{2029}b + a\x{85}b + a\n\rb + a\n\r\x{85}\x0cb + +/^a\R+b/8 + a\nb + a\rb + a\r\nb + a\x0bb + a\x0c\x{2028}\x{2029}b + a\x{85}b + a\n\rb + a\n\r\x{85}\x0cb + ** Failers + ab + +/^a\R{1,3}b/8 + a\nb + a\n\rb + a\n\r\x{85}b + a\r\n\r\nb + a\r\n\r\n\r\nb + a\n\r\n\rb + a\n\n\r\nb + ** Failers + a\n\n\n\rb + a\r + / End of testinput5 / diff -Nurp tin-1.9.1/pcre/testdata/testinput6 tin-1.9.2/pcre/testdata/testinput6 --- tin-1.9.1/pcre/testdata/testinput6 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput6 2006-12-19 10:31:35.000000000 +0100 @@ -738,4 +738,28 @@ \x{1c5}XY AXY +/^(\p{Z}[^\p{C}\p{Z}]+)*$/ + \xa0! + +/^[\pL](abc)(?1)/ + AabcabcYZ + +/([\pL]=(abc))*X/ + L=abcX + +/The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE +will match it only with UCP support, because without that it has no notion +of case for anything other than the ASCII letters. / + +/((?i)[\x{c0}])/8 + \x{c0} + \x{e0} + +/(?i:[\x{c0}])/8 + \x{c0} + \x{e0} + +/^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/8 + \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} + / End of testinput6 / diff -Nurp tin-1.9.1/pcre/testdata/testinput7 tin-1.9.2/pcre/testdata/testinput7 --- tin-1.9.1/pcre/testdata/testinput7 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput7 2006-12-19 10:31:35.000000000 +0100 @@ -1775,7 +1775,7 @@ abc /^a b - c/x + c/x abc /ab{1,3}bc/ @@ -1888,7 +1888,7 @@ /{4,5a}bc/ {4,5a}bc -/^a.b/ +/^a.b/ a\rb *** Failers a\nb @@ -1908,11 +1908,11 @@ /(abc)\323/ abc\xd3 -/(abc)\500/ +/(abc)\100/ abc\x40 abc\100 -/(abc)\5000/ +/(abc)\1000/ abc\x400 abc\x40\x30 abc\1000 @@ -1931,8 +1931,8 @@ /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ abcdefghijk\12S -/ab\gdef/ - abgdef +/ab\hdef/ + abhdef /a{0}bc/ bc @@ -4018,4 +4018,215 @@ 123\P 4\P\R +/^/mg + a\nb\nc\n + \ + +/(?<=C\n)^/mg + A\nC\nC\n + +/(?s)A?B/ + AB + aB + +/(?s)A*B/ + AB + aB + +/(?m)A?B/ + AB + aB + +/(?m)A*B/ + AB + aB + +/Content-Type\x3A[^\r\n]{6,}/ + Content-Type:xxxxxyyy + +/Content-Type\x3A[^\r\n]{6,}z/ + Content-Type:xxxxxyyyz + +/Content-Type\x3A[^a]{6,}/ + Content-Type:xxxyyy + +/Content-Type\x3A[^a]{6,}z/ + Content-Type:xxxyyyz + +/^abc/m + xyz\nabc + xyz\nabc\ + xyz\r\nabc\ + xyz\rabc\ + xyz\r\nabc\ + ** Failers + xyz\nabc\ + xyz\r\nabc\ + xyz\nabc\ + xyz\rabc\ + xyz\rabc\ + +/abc$/m + xyzabc + xyzabc\n + xyzabc\npqr + xyzabc\r\ + xyzabc\rpqr\ + xyzabc\r\n\ + xyzabc\r\npqr\ + ** Failers + xyzabc\r + xyzabc\rpqr + xyzabc\r\n + xyzabc\r\npqr + +/^abc/m + xyz\rabcdef + xyz\nabcdef\ + ** Failers + xyz\nabcdef + +/^abc/m + xyz\nabcdef + xyz\rabcdef\ + ** Failers + xyz\rabcdef + +/^abc/m + xyz\r\nabcdef + xyz\rabcdef\ + ** Failers + xyz\rabcdef + +/.*/ + abc\ndef + abc\rdef + abc\r\ndef + \abc\ndef + \abc\rdef + \abc\r\ndef + \abc\ndef + \abc\rdef + \abc\r\ndef + +/\w+(.)(.)?def/s + abc\ndef + abc\rdef + abc\r\ndef + +/^\w+=.*(\\\n.*)*/ + abc=xyz\\\npqr + +/^(a()*)*/ + aaaa + +/^(?:a(?:(?:))*)*/ + aaaa + +/^(a()+)+/ + aaaa + +/^(?:a(?:(?:))+)+/ + aaaa + +/(a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?>a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?:a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/^a.b/ + a\rb + a\nb\ + ** Failers + a\nb + a\nb\ + a\rb\ + a\rb\ + +/^abc./mgx + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK + +/abc.$/mgx + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + +/^a\Rb/ + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + ** Failers + a\n\rb + +/^a\R*b/ + ab + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb + +/^a\R+b/ + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb + ** Failers + ab + +/^a\R{1,3}b/ + a\nb + a\n\rb + a\n\r\x85b + a\r\n\r\nb + a\r\n\r\n\r\nb + a\n\r\n\rb + a\n\n\r\nb + ** Failers + a\n\n\n\rb + a\r + +/^a[\R]b/ + aRb + ** Failers + a\nb + +/.+foo/ + afoo + ** Failers + \r\nfoo + \nfoo + +/.+foo/ + afoo + \nfoo + ** Failers + \r\nfoo + +/.+foo/ + afoo + ** Failers + \nfoo + \r\nfoo + +/.+foo/s + afoo + \r\nfoo + \nfoo + / End of testinput7 / diff -Nurp tin-1.9.1/pcre/testdata/testinput8 tin-1.9.2/pcre/testdata/testinput8 --- tin-1.9.1/pcre/testdata/testinput8 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testinput8 2006-12-19 10:31:35.000000000 +0100 @@ -537,4 +537,57 @@ /^\x{85}$/8i \x{85} +/^abc./mgx8 + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK + +/abc.$/mgx8 + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 + +/^a\Rb/8 + a\nb + a\rb + a\r\nb + a\x0bb + a\x0cb + a\x{85}b + a\x{2028}b + a\x{2029}b + ** Failers + a\n\rb + +/^a\R*b/8 + ab + a\nb + a\rb + a\r\nb + a\x0bb + a\x0c\x{2028}\x{2029}b + a\x{85}b + a\n\rb + a\n\r\x{85}\x0cb + +/^a\R+b/8 + a\nb + a\rb + a\r\nb + a\x0bb + a\x0c\x{2028}\x{2029}b + a\x{85}b + a\n\rb + a\n\r\x{85}\x0cb + ** Failers + ab + +/^a\R{1,3}b/8 + a\nb + a\n\rb + a\n\r\x{85}b + a\r\n\r\nb + a\r\n\r\n\r\nb + a\n\r\n\rb + a\n\n\r\nb + ** Failers + a\n\n\n\rb + a\r + / End of testinput 8 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput1 tin-1.9.2/pcre/testdata/testoutput1 --- tin-1.9.1/pcre/testdata/testoutput1 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput1 2006-12-19 10:31:35.000000000 +0100 @@ -1817,7 +1817,7 @@ No match No match /^a b - c/x + c/x abc 0: abc @@ -2093,14 +2093,6 @@ No match {4,5a}bc 0: {4,5a}bc -/^a.b/ - a\rb - 0: a\x0db - *** Failers -No match - a\nb -No match - /abc$/ abc 0: abc @@ -2126,7 +2118,7 @@ No match 0: abc\xd3 1: abc -/(abc)\500/ +/(abc)\100/ abc\x40 0: abc@ 1: abc @@ -2134,7 +2126,7 @@ No match 0: abc@ 1: abc -/(abc)\5000/ +/(abc)\1000/ abc\x400 0: abc@0 1: abc @@ -2197,9 +2189,9 @@ No match 10: j 11: k -/ab\gdef/ - abgdef - 0: abgdef +/ab\hdef/ + abhdef + 0: abhdef /a{0}bc/ bc @@ -5480,12 +5472,22 @@ No match 0: b /^(?:a?b?)*$/ + \ + 0: + a + 0: a + ab + 0: ab + aaa + 0: aaa *** Failers No match dbcb No match a-- No match + aa-- +No match /((?s)^a(.))((?m)^b$)/ a\nb\nc\n @@ -6281,4 +6283,292 @@ No match abcddefg No match +/(? + 2: + D + 0: D + 1: + 2: + +/(a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 1: + +/(?>a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?:a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/\Z/g + abc\n + 0: + 0: + +/^(?s)(?>.*)(? 3: def -/abc/P +/abc/IP abc 0: abc *** Failers No match: POSIX code 17: match failed -/^abc|def/P +/^abc|def/IP abcdef 0: abc abcdef\B 0: def -/.*((abc)$|(def))/P +/.*((abc)$|(def))/IP defabc 0: defabc 1: abc @@ -360,7 +360,7 @@ No match: POSIX code 17: match failed 1: def 3: def -/the quick brown fox/P +/the quick brown fox/IP the quick brown fox 0: the quick brown fox *** Failers @@ -368,28 +368,28 @@ No match: POSIX code 17: match failed The Quick Brown Fox No match: POSIX code 17: match failed -/the quick brown fox/Pi +/the quick brown fox/IPi the quick brown fox 0: the quick brown fox The Quick Brown Fox 0: The Quick Brown Fox -/abc.def/P +/abc.def/IP *** Failers No match: POSIX code 17: match failed abc\ndef No match: POSIX code 17: match failed -/abc$/P +/abc$/IP abc 0: abc abc\n 0: abc -/(abc)\2/P +/(abc)\2/IP Failed: POSIX code 15: bad back reference at offset 7 -/(abc\1)/P +/(abc\1)/IP abc No match: POSIX code 17: match failed @@ -399,7 +399,7 @@ Failed: unmatched parentheses at offset /a[]b/ Failed: missing terminating ] for character class at offset 4 -/[^aeiou ]{3,}/ +/[^aeiou ]{3,}/I Capturing subpattern count = 0 Partial matching not supported No options @@ -408,7 +408,7 @@ No need char co-processors, and for 0: -pr -/<.*>/ +/<.*>/I Capturing subpattern count = 0 Partial matching not supported No options @@ -417,7 +417,7 @@ Need char = '>' abcghinop 0: ghi -/<.*?>/ +/<.*?>/I Capturing subpattern count = 0 Partial matching not supported No options @@ -426,7 +426,7 @@ Need char = '>' abcghinop 0: -/<.*>/U +/<.*>/IU Capturing subpattern count = 0 Partial matching not supported Options: ungreedy @@ -435,7 +435,7 @@ Need char = '>' abcghinop 0: -/(?U)<.*>/ +/(?U)<.*>/I Capturing subpattern count = 0 Partial matching not supported Options: ungreedy @@ -444,7 +444,7 @@ Need char = '>' abcghinop 0: -/<.*?>/U +/<.*?>/IU Capturing subpattern count = 0 Partial matching not supported Options: ungreedy @@ -453,7 +453,7 @@ Need char = '>' abcghinop 0: ghi -/={3,}/U +/={3,}/IU Capturing subpattern count = 0 Partial matching not supported Options: ungreedy @@ -462,7 +462,7 @@ Need char = '=' abc========def 0: === -/(?U)={3,}?/ +/(?U)={3,}?/I Capturing subpattern count = 0 Partial matching not supported Options: ungreedy @@ -471,7 +471,7 @@ Need char = '=' abc========def 0: ======== -/(?^abc)/m +/(?>^abc)/Im Capturing subpattern count = 0 Options: multiline -First char at start or follows \n +First char at start or follows newline Need char = 'c' abc 0: abc @@ -758,12 +757,8 @@ Failed: lookbehind assertion is not fixe Failed: lookbehind assertion is not fixed length at offset 13 /The next three are in testinput2 because they have variable length branches/ -Capturing subpattern count = 0 -No options -First char = 'T' -Need char = 's' -/(?<=bullock|donkey)-cart/ +/(?<=bullock|donkey)-cart/I Capturing subpattern count = 0 No options First char = '-' @@ -779,18 +774,17 @@ No match horse-and-cart No match -/(?<=ab(?i)x|y|z)/ +/(?<=ab(?i)x|y|z)/I Capturing subpattern count = 0 No options -Case state changes No first char No need char -/(?>.*)(?<=(abcd)|(xyz))/ +/(?>.*)(?<=(abcd)|(xyz))/I Capturing subpattern count = 2 Partial matching not supported No options -First char at start or follows \n +First char at start or follows newline No need char alphabetabcd 0: alphabetabcd @@ -800,10 +794,9 @@ No need char 1: 2: xyz -/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/ +/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I Capturing subpattern count = 0 No options -Case state changes First char = 'Z' Need char = 'Z' abxyZZ @@ -829,7 +822,7 @@ No match bzz No match -/(?[^()]+) | (?R) )* \) /xg +/\( ( (?>[^()]+) | (?R) )* \) /Ixg Capturing subpattern count = 1 Partial matching not supported Options: extended @@ -1757,7 +1750,7 @@ Need char = ')' 0: (x(y)z) 1: z -/\( (?: (?>[^()]+) | (?R) ) \) /x +/\( (?: (?>[^()]+) | (?R) ) \) /Ix Capturing subpattern count = 0 Partial matching not supported Options: extended @@ -1776,7 +1769,7 @@ No match () No match -/\( (?: (?>[^()]+) | (?R) )? \) /x +/\( (?: (?>[^()]+) | (?R) )? \) /Ix Capturing subpattern count = 0 Partial matching not supported Options: extended @@ -1787,7 +1780,7 @@ Need char = ')' 12(abcde(fsh)xyz(foo(bar))lmno)89 0: (fsh) -/\( ( (?>[^()]+) | (?R) )* \) /x +/\( ( (?>[^()]+) | (?R) )* \) /Ix Capturing subpattern count = 1 Partial matching not supported Options: extended @@ -1797,7 +1790,7 @@ Need char = ')' 0: (ab(xy)cd) 1: cd -/\( ( ( (?>[^()]+) | (?R) )* ) \) /x +/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix Capturing subpattern count = 2 Partial matching not supported Options: extended @@ -1808,7 +1801,7 @@ Need char = ')' 1: ab(xy)cd 2: cd -/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x +/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix Capturing subpattern count = 3 Partial matching not supported Options: extended @@ -1825,7 +1818,7 @@ Need char = ')' 2: ab(xy)cd 3: cd -/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x +/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix Capturing subpattern count = 3 Partial matching not supported Options: extended @@ -1842,7 +1835,7 @@ Need char = ')' 2: 123 3: cd -/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x +/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix Capturing subpattern count = 11 Partial matching not supported Options: extended @@ -1862,7 +1855,7 @@ Need char = ')' 10: ab(xy)cd 11: cd -/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x +/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix Capturing subpattern count = 3 Partial matching not supported Options: extended @@ -1874,7 +1867,7 @@ Need char = ')' 2: 123 3: -/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x +/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix Capturing subpattern count = 3 Partial matching not supported Options: extended @@ -2191,16 +2184,16 @@ No options No first char No need char -/[[.ch.]]/ +/[[.ch.]]/I Failed: POSIX collating elements are not supported at offset 1 -/[[=ch=]]/ +/[[=ch=]]/I Failed: POSIX collating elements are not supported at offset 1 -/[[:rhubarb:]]/ +/[[:rhubarb:]]/I Failed: unknown POSIX class name at offset 3 -/[[:upper:]]/i +/[[:upper:]]/Ii Capturing subpattern count = 0 Options: caseless No first char @@ -2210,7 +2203,7 @@ No need char a 0: a -/[[:lower:]]/i +/[[:lower:]]/Ii Capturing subpattern count = 0 Options: caseless No first char @@ -2220,10 +2213,9 @@ No need char a 0: a -/((?-i)[[:lower:]])[[:lower:]]/i +/((?-i)[[:lower:]])[[:lower:]]/Ii Capturing subpattern count = 1 Options: caseless -Case state changes No first char No need char ab @@ -2240,19 +2232,19 @@ No match AB No match -/[\200-\410]/ +/[\200-\110]/I Failed: range out of order in character class at offset 9 -/^(?(0)f|b)oo/ -Failed: invalid condition (?(0) at offset 5 +/^(?(0)f|b)oo/I +Failed: invalid condition (?(0) at offset 6 -/This one's here because of the large output vector needed/ +/This one's here because of the large output vector needed/I Capturing subpattern count = 0 No options First char = 'T' Need char = 'd' -/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/ +/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I Capturing subpattern count = 271 Max back reference = 270 Partial matching not supported @@ -2533,13 +2525,13 @@ No need char 270: ABC 271: ABC -/This one's here because Perl does this differently and PCRE can't at present/ +/This one's here because Perl does this differently and PCRE can't at present/I Capturing subpattern count = 0 No options First char = 'T' Need char = 't' -/(main(O)?)+/ +/(main(O)?)+/I Capturing subpattern count = 2 No options First char = 'm' @@ -2552,13 +2544,13 @@ Need char = 'n' 1: main 2: O -/These are all cases where Perl does it differently (nested captures)/ +/These are all cases where Perl does it differently (nested captures)/I Capturing subpattern count = 1 No options First char = 'T' Need char = 's' -/^(a(b)?)+$/ +/^(a(b)?)+$/I Capturing subpattern count = 2 Options: anchored No first char @@ -2568,7 +2560,7 @@ No need char 1: a 2: b -/^(aa(bb)?)+$/ +/^(aa(bb)?)+$/I Capturing subpattern count = 2 Options: anchored No first char @@ -2578,7 +2570,7 @@ No need char 1: aa 2: bb -/^(aa|aa(bb))+$/ +/^(aa|aa(bb))+$/I Capturing subpattern count = 2 Options: anchored No first char @@ -2588,7 +2580,7 @@ No need char 1: aa 2: bb -/^(aa(bb)??)+$/ +/^(aa(bb)??)+$/I Capturing subpattern count = 2 Options: anchored No first char @@ -2598,7 +2590,7 @@ No need char 1: aa 2: bb -/^(?:aa(bb)?)+$/ +/^(?:aa(bb)?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2607,7 +2599,7 @@ No need char 0: aabbaa 1: bb -/^(aa(b(b))?)+$/ +/^(aa(b(b))?)+$/I Capturing subpattern count = 3 Options: anchored No first char @@ -2618,7 +2610,7 @@ No need char 2: bb 3: b -/^(?:aa(b(b))?)+$/ +/^(?:aa(b(b))?)+$/I Capturing subpattern count = 2 Options: anchored No first char @@ -2628,7 +2620,7 @@ No need char 1: bb 2: b -/^(?:aa(b(?:b))?)+$/ +/^(?:aa(b(?:b))?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2637,7 +2629,7 @@ No need char 0: aabbaa 1: bb -/^(?:aa(bb(?:b))?)+$/ +/^(?:aa(bb(?:b))?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2646,7 +2638,7 @@ No need char 0: aabbbaa 1: bbb -/^(?:aa(b(?:bb))?)+$/ +/^(?:aa(b(?:bb))?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2655,7 +2647,7 @@ No need char 0: aabbbaa 1: bbb -/^(?:aa(?:b(b))?)+$/ +/^(?:aa(?:b(b))?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2664,7 +2656,7 @@ No need char 0: aabbaa 1: b -/^(?:aa(?:b(bb))?)+$/ +/^(?:aa(?:b(bb))?)+$/I Capturing subpattern count = 1 Options: anchored No first char @@ -2673,7 +2665,7 @@ No need char 0: aabbbaa 1: bb -/^(aa(b(bb))?)+$/ +/^(aa(b(bb))?)+$/I Capturing subpattern count = 3 Options: anchored No first char @@ -2684,7 +2676,7 @@ No need char 2: bbb 3: bb -/^(aa(bb(bb))?)+$/ +/^(aa(bb(bb))?)+$/I Capturing subpattern count = 3 Options: anchored No first char @@ -2695,13 +2687,13 @@ No need char 2: bbbb 3: bb -/--------------------------------------------------------------------/ +/--------------------------------------------------------------------/I Capturing subpattern count = 0 No options First char = '-' Need char = '-' -/#/xMD +/#/IxMD Memory allocation (code space): 7 ------------------------------------------------------------------ 0 3 Bra 0 @@ -2713,7 +2705,7 @@ Options: extended No first char No need char -/a#/xMD +/a#/IxMD Memory allocation (code space): 9 ------------------------------------------------------------------ 0 5 Bra 0 @@ -2761,7 +2753,6 @@ No need char ------------------------------------------------------------------ Capturing subpattern count = 0 No options -Case state changes First char = 'a' Need char = 'b' (caseless) ab @@ -2775,19 +2766,18 @@ No match /(a(?i)b)/D ------------------------------------------------------------------ - 0 17 Bra 0 - 3 9 Bra 1 - 6 a - 8 01 Opt - 10 NC b - 12 9 Ket - 15 00 Opt - 17 17 Ket - 20 End + 0 19 Bra 0 + 3 11 Bra 1 + 8 a + 10 01 Opt + 12 NC b + 14 11 Ket + 17 00 Opt + 19 19 Ket + 22 End ------------------------------------------------------------------ Capturing subpattern count = 1 No options -Case state changes First char = 'a' Need char = 'b' (caseless) ab @@ -2801,7 +2791,7 @@ No match AB No match -/ (?i)abc/xD +/ (?i)abc/IxD ------------------------------------------------------------------ 0 9 Bra 0 3 NC abc @@ -2814,7 +2804,7 @@ First char = 'a' (caseless) Need char = 'c' (caseless) /#this is a comment - (?i)abc/xD + (?i)abc/IxD ------------------------------------------------------------------ 0 9 Bra 0 3 NC abc @@ -2933,13 +2923,11 @@ Need char = 'c' /x*+\w/D ------------------------------------------------------------------ - 0 12 Bra 0 - 3 5 Once - 6 x* - 8 5 Ket - 11 \w - 12 12 Ket - 15 End + 0 6 Bra 0 + 3 x*+ + 5 \w + 6 6 Ket + 9 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2953,12 +2941,10 @@ No match /x?+/D ------------------------------------------------------------------ - 0 11 Bra 0 - 3 5 Once - 6 x? - 8 5 Ket - 11 11 Ket - 14 End + 0 5 Bra 0 + 3 x?+ + 5 5 Ket + 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2967,12 +2953,10 @@ No need char /x++/D ------------------------------------------------------------------ - 0 11 Bra 0 - 3 5 Once - 6 x+ - 8 5 Ket - 11 11 Ket - 14 End + 0 5 Bra 0 + 3 x++ + 5 5 Ket + 8 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2985,7 +2969,7 @@ No need char 0 15 Bra 0 3 9 Once 6 x - 8 x{,2} + 8 x{0,2} 12 9 Ket 15 15 Ket 18 End @@ -2998,22 +2982,22 @@ No need char /(x)*+/D ------------------------------------------------------------------ - 0 18 Bra 0 - 3 12 Once + 0 20 Bra 0 + 3 14 Once 6 Brazero - 7 5 Bra 1 - 10 x - 12 5 KetRmax - 15 12 Ket - 18 18 Ket - 21 End + 7 7 Bra 1 + 12 x + 14 7 KetRmax + 17 14 Ket + 20 20 Ket + 23 End ------------------------------------------------------------------ Capturing subpattern count = 1 No options No first char No need char -/^(\w++|\s++)*$/ +/^(\w++|\s++)*$/I Capturing subpattern count = 1 Partial matching not supported Options: anchored @@ -3027,7 +3011,7 @@ No match this is not a line with only words and spaces! No match -/(\d++)(\w)/ +/(\d++)(\w)/I Capturing subpattern count = 2 Partial matching not supported No options @@ -3042,7 +3026,7 @@ No match 12345+ No match -/a++b/ +/a++b/I Capturing subpattern count = 0 Partial matching not supported No options @@ -3051,7 +3035,7 @@ Need char = 'b' aaab 0: aaab -/(a++b)/ +/(a++b)/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3061,7 +3045,7 @@ Need char = 'b' 0: aaab 1: aaab -/(a++)b/ +/(a++)b/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3071,7 +3055,7 @@ Need char = 'b' 0: aaab 1: aaa -/([^()]++|\([^()]*\))+/ +/([^()]++|\([^()]*\))+/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3081,7 +3065,7 @@ No need char 0: abc(ade)ufh()()x 1: x -/\(([^()]++|\([^()]+\))+\)/ +/\(([^()]++|\([^()]+\))+\)/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3100,52 +3084,50 @@ No match /(abc){1,3}+/D ------------------------------------------------------------------ - 0 53 Bra 0 - 3 47 Once - 6 9 Bra 1 - 9 abc - 15 9 Ket - 18 Brazero - 19 28 Bra 0 - 22 9 Bra 1 - 25 abc - 31 9 Ket - 34 Brazero - 35 9 Bra 1 - 38 abc - 44 9 Ket - 47 28 Ket - 50 47 Ket - 53 53 Ket - 56 End + 0 59 Bra 0 + 3 53 Once + 6 11 Bra 1 + 11 abc + 17 11 Ket + 20 Brazero + 21 32 Bra 0 + 24 11 Bra 1 + 29 abc + 35 11 Ket + 38 Brazero + 39 11 Bra 1 + 44 abc + 50 11 Ket + 53 32 Ket + 56 53 Ket + 59 59 Ket + 62 End ------------------------------------------------------------------ Capturing subpattern count = 1 No options First char = 'a' Need char = 'c' -/a+?+/ +/a+?+/I Failed: nothing to repeat at offset 3 -/a{2,3}?+b/ +/a{2,3}?+b/I Failed: nothing to repeat at offset 7 -/(?U)a+?+/ +/(?U)a+?+/I Failed: nothing to repeat at offset 7 -/a{2,3}?+b/U +/a{2,3}?+b/IU Failed: nothing to repeat at offset 7 /x(?U)a++b/D ------------------------------------------------------------------ - 0 15 Bra 0 + 0 9 Bra 0 3 x - 5 5 Once - 8 a+ - 10 5 Ket - 13 b - 15 15 Ket - 18 End + 5 a++ + 7 b + 9 9 Ket + 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3157,14 +3139,12 @@ Need char = 'b' /(?U)xa++b/D ------------------------------------------------------------------ - 0 15 Bra 0 + 0 9 Bra 0 3 x - 5 5 Once - 8 a+ - 10 5 Ket - 13 b - 15 15 Ket - 18 End + 5 a++ + 7 b + 9 9 Ket + 12 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3176,24 +3156,24 @@ Need char = 'b' /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D ------------------------------------------------------------------ - 0 106 Bra 0 + 0 116 Bra 0 3 ^ - 4 99 Bra 1 - 7 5 Bra 2 - 10 a+ - 12 5 Ket - 15 37 Bra 3 - 18 [ab]+? - 52 37 Ket - 55 37 Bra 4 - 58 [bc]+ - 92 37 Ket - 95 5 Bra 5 - 98 \w* -100 5 Ket -103 99 Ket -106 106 Ket -109 End + 4 109 Bra 1 + 9 7 Bra 2 + 14 a+ + 16 7 Ket + 19 39 Bra 3 + 24 [ab]+? + 58 39 Ket + 61 39 Bra 4 + 66 [bc]+ +100 39 Ket +103 7 Bra 5 +108 \w* +110 7 Ket +113 109 Ket +116 116 Ket +119 End ------------------------------------------------------------------ Capturing subpattern count = 5 Partial matching not supported @@ -3206,7 +3186,7 @@ No need char 0 10 Bra 0 3 ^ 4 x - 6 a+? + 6 a++ 8 b 10 10 Ket 13 End @@ -3219,15 +3199,15 @@ Need char = 'b' /^x(?U)(a+)b/D ------------------------------------------------------------------ - 0 16 Bra 0 + 0 18 Bra 0 3 ^ 4 x - 6 5 Bra 1 - 9 a+? - 11 5 Ket - 14 b - 16 16 Ket - 19 End + 6 7 Bra 1 + 11 a+? + 13 7 Ket + 16 b + 18 18 Ket + 21 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -3235,40 +3215,40 @@ Options: anchored No first char Need char = 'b' -/[.x.]/ +/[.x.]/I Failed: POSIX collating elements are not supported at offset 0 -/[=x=]/ +/[=x=]/I Failed: POSIX collating elements are not supported at offset 0 -/[:x:]/ +/[:x:]/I Failed: POSIX named classes are supported only within a class at offset 0 -/\l/ +/\l/I Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 -/\L/ +/\L/I Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 -/\N{name}/ +/\N{name}/I Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 -/\u/ +/\u/I Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 -/\U/ +/\U/I Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 -/[/ +/[/I Failed: missing terminating ] for character class at offset 1 -/[a-/ +/[a-/I Failed: missing terminating ] for character class at offset 3 -/[[:space:]/ +/[[:space:]/I Failed: missing terminating ] for character class at offset 10 -/[\s]/DM +/[\s]/IDM Memory allocation (code space): 40 ------------------------------------------------------------------ 0 36 Bra 0 @@ -3281,7 +3261,7 @@ No options No first char No need char -/[[:space:]]/DM +/[[:space:]]/IDM Memory allocation (code space): 40 ------------------------------------------------------------------ 0 36 Bra 0 @@ -3294,7 +3274,7 @@ No options No first char No need char -/[[:space:]abcde]/DM +/[[:space:]abcde]/IDM Memory allocation (code space): 40 ------------------------------------------------------------------ 0 36 Bra 0 @@ -3307,7 +3287,7 @@ No options No first char No need char -/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x +/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix Capturing subpattern count = 0 Partial matching not supported Options: extended @@ -3330,7 +3310,7 @@ No match iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM +|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM Memory allocation (code space): 826 ------------------------------------------------------------------ 0 822 Bra 0 @@ -3344,7 +3324,7 @@ No options First char = '8' Need char = 'X' -|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM +|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM Memory allocation (code space): 816 ------------------------------------------------------------------ 0 812 Bra 0 @@ -3370,7 +3350,7 @@ No need char Capturing subpattern count = 1 Partial matching not supported No options -First char at start or follows \n +First char at start or follows newline No need char /(.*)\d+\1/Is @@ -3393,7 +3373,7 @@ Capturing subpattern count = 2 Max back reference = 2 Partial matching not supported No options -First char at start or follows \n +First char at start or follows newline Need char = 'z' /((.*))\d+\1/I @@ -3421,7 +3401,7 @@ No options First char = 'a' No need char -/(?=abc).xyz/iI +/(?=abc).xyz/IiI Capturing subpattern count = 0 Options: caseless First char = 'a' (caseless) @@ -3430,7 +3410,6 @@ Need char = 'z' (caseless) /(?=abc)(?i).xyz/I Capturing subpattern count = 0 No options -Case state changes First char = 'a' Need char = 'z' (caseless) @@ -3550,10 +3529,10 @@ No options First char = 'a' Need char = 'b' -/^a/mI +/^a/Im Capturing subpattern count = 0 Options: multiline -First char at start or follows \n +First char at start or follows newline Need char = 'a' abcde 0: a @@ -3580,12 +3559,11 @@ Starting byte set: A B a b /[ab](?i)cd/IS Capturing subpattern count = 0 No options -Case state changes No first char Need char = 'd' (caseless) Starting byte set: a b -/abc(?C)def/ +/abc(?C)def/I Capturing subpattern count = 0 No options First char = 'a' @@ -3607,7 +3585,7 @@ No match 0 ^ ^ d No match -/abc(?C)de(?C1)f/ +/abc(?C)de(?C1)f/I Capturing subpattern count = 0 No options First char = 'a' @@ -3618,7 +3596,7 @@ Need char = 'f' 1 ^ ^ f 0: abcdef -/(?C1)\dabc(?C2)def/ +/(?C1)\dabc(?C2)def/I Capturing subpattern count = 0 No options No first char @@ -3643,22 +3621,22 @@ No match 1 ^ \d No match -/(?C255)ab/ +/(?C255)ab/I Capturing subpattern count = 0 No options First char = 'a' Need char = 'b' -/(?C256)ab/ +/(?C256)ab/I Failed: number after (?C is > 255 at offset 6 -/(?Cab)xx/ +/(?Cab)xx/I Failed: closing ) for (?C expected at offset 3 -/(?C12vr)x/ +/(?C12vr)x/I Failed: closing ) for (?C expected at offset 5 -/abc(?C)def/ +/abc(?C)def/I Capturing subpattern count = 0 No options First char = 'a' @@ -3670,7 +3648,7 @@ No match 0 ^ ^ d 0: abcdef -/(abc)(?C)de(?C1)f/ +/(abc)(?C)de(?C1)f/I Capturing subpattern count = 1 No options First char = 'a' @@ -3705,7 +3683,7 @@ No match 1 ^ ^ f No match -/(?C0)(abc(?C1))*/ +/(?C0)(abc(?C1))*/I Capturing subpattern count = 1 No options No first char @@ -3738,7 +3716,7 @@ No need char 0: abcabc 1: abc -/(\d{3}(?C))*/ +/(\d{3}(?C))*/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3781,7 +3759,7 @@ Callout 0: last capture = 1 0: 123456789 1: 789 -/((xyz)(?C)p|(?C1)xyzabc)/ +/((xyz)(?C)p|(?C1)xyzabc)/I Capturing subpattern count = 2 No options First char = 'x' @@ -3800,7 +3778,7 @@ Callout 1: last capture = -1 0: xyzabc 1: xyzabc -/(X)((xyz)(?C)p|(?C1)xyzabc)/ +/(X)((xyz)(?C)p|(?C1)xyzabc)/I Capturing subpattern count = 3 No options First char = 'X' @@ -3822,7 +3800,7 @@ Callout 1: last capture = 1 1: X 2: xyzabc -/(?=(abc))(?C)abcdef/ +/(?=(abc))(?C)abcdef/I Capturing subpattern count = 1 No options First char = 'a' @@ -3836,7 +3814,7 @@ Callout 0: last capture = 1 0: abcdef 1: abc -/(?!(abc)(?C1)d)(?C2)abcxyz/ +/(?!(abc)(?C1)d)(?C2)abcxyz/I Capturing subpattern count = 1 No options First char = 'a' @@ -3853,7 +3831,7 @@ Callout 2: last capture = -1 ^ a 0: abcxyz -/(?<=(abc)(?C))xyz/ +/(?<=(abc)(?C))xyz/I Capturing subpattern count = 1 No options First char = 'x' @@ -3867,7 +3845,7 @@ Callout 0: last capture = 1 0: xyz 1: abc -/a(b+)(c*)(?C1)/ +/a(b+)(c*)(?C1)/I Capturing subpattern count = 2 Partial matching not supported No options @@ -3893,7 +3871,7 @@ Callout data = 1 Callout data = 1 No match -/a(b+?)(c*?)(?C1)/ +/a(b+?)(c*?)(?C1)/I Capturing subpattern count = 2 Partial matching not supported No options @@ -3919,35 +3897,35 @@ Callout data = 1 Callout data = 1 No match -/(?C)abc/ +/(?C)abc/I Capturing subpattern count = 0 No options First char = 'a' Need char = 'c' -/(?C)^abc/ +/(?C)^abc/I Capturing subpattern count = 0 Options: anchored No first char No need char -/(?C)a|b/S +/(?C)a|b/IS Capturing subpattern count = 0 No options No first char No need char Starting byte set: a b -/(?R)/ +/(?R)/I Failed: recursive call could loop indefinitely at offset 3 -/(a|(?R))/ +/(a|(?R))/I Failed: recursive call could loop indefinitely at offset 6 -/(ab|(bc|(de|(?R))))/ +/(ab|(bc|(de|(?R))))/I Failed: recursive call could loop indefinitely at offset 15 -/x(ab|(bc|(de|(?R))))/ +/x(ab|(bc|(de|(?R))))/I Capturing subpattern count = 3 No options First char = 'x' @@ -3979,13 +3957,13 @@ No match xyab No match -/(ab|(bc|(de|(?1))))/ +/(ab|(bc|(de|(?1))))/I Failed: recursive call could loop indefinitely at offset 15 -/x(ab|(bc|(de|(?1)x)x)x)/ +/x(ab|(bc|(de|(?1)x)x)x)/I Failed: recursive call could loop indefinitely at offset 16 -/^([^()]|\((?1)*\))*$/ +/^([^()]|\((?1)*\))*$/I Capturing subpattern count = 1 Options: anchored No first char @@ -4004,7 +3982,7 @@ No match a(b(c)d No match -/^>abc>([^()]|\((?1)*\))*abc>([^()]|\((?1)*\))*]*+) | (?2)) * >))/x +/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix Capturing subpattern count = 2 Partial matching not supported Options: extended @@ -4165,13 +4143,13 @@ No match b|c)d(?Pe)/D ------------------------------------------------------------------ - 0 28 Bra 0 + 0 32 Bra 0 3 a - 5 5 Bra 1 - 8 b - 10 5 Alt - 13 c - 15 10 Ket - 18 d - 20 5 Bra 2 - 23 e - 25 5 Ket - 28 28 Ket - 31 End + 5 7 Bra 1 + 10 b + 12 5 Alt + 15 c + 17 12 Ket + 20 d + 22 7 Bra 2 + 27 e + 29 7 Ket + 32 32 Ket + 35 End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4247,21 +4225,21 @@ Need char = 'e' /(?:a(?Pc(?Pd)))(?Pa)/D ------------------------------------------------------------------ - 0 35 Bra 0 - 3 21 Bra 0 + 0 41 Bra 0 + 3 25 Bra 0 6 a - 8 13 Bra 1 - 11 c - 13 5 Bra 2 - 16 d - 18 5 Ket - 21 13 Ket - 24 21 Ket - 27 5 Bra 3 - 30 a - 32 5 Ket - 35 35 Ket - 38 End + 8 17 Bra 1 + 13 c + 15 7 Bra 2 + 20 d + 22 7 Ket + 25 17 Ket + 28 25 Ket + 31 7 Bra 3 + 36 a + 38 7 Ket + 41 41 Ket + 44 End ------------------------------------------------------------------ Capturing subpattern count = 3 Named capturing subpatterns: @@ -4274,21 +4252,21 @@ Need char = 'a' /(?Pa)...(?P=a)bbb(?P>a)d/D ------------------------------------------------------------------ - 0 34 Bra 0 - 3 5 Bra 1 - 6 a - 8 5 Ket - 11 Any - 12 Any + 0 36 Bra 0 + 3 7 Bra 1 + 8 a + 10 7 Ket 13 Any - 14 \1 - 17 bbb - 23 6 Once - 26 3 Recurse - 29 6 Ket - 32 d - 34 34 Ket - 37 End + 14 Any + 15 Any + 16 \1 + 19 bbb + 25 6 Once + 28 3 Recurse + 31 6 Ket + 34 d + 36 36 Ket + 39 End ------------------------------------------------------------------ Capturing subpattern count = 1 Max back reference = 1 @@ -4298,7 +4276,7 @@ No options First char = 'a' Need char = 'd' -/^\W*(?:(?P(?P.)\W*(?P>one)\W*(?P=two)|)|(?P(?P.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i +/^\W*(?:(?P(?P.)\W*(?P>one)\W*(?P=two)|)|(?P(?P.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii Capturing subpattern count = 4 Max back reference = 4 Named capturing subpatterns: @@ -4337,7 +4315,7 @@ No match The quick brown fox No match -/((?(R)a|b))\1(?1)?/ +/((?(R)a|b))\1(?1)?/I Capturing subpattern count = 1 Max back reference = 1 No options @@ -4350,14 +4328,14 @@ No need char 0: bba 1: b -/(.*)a/sI +/(.*)a/Is Capturing subpattern count = 1 Partial matching not supported Options: anchored dotall No first char Need char = 'a' -/(.*)a\1/sI +/(.*)a\1/Is Capturing subpattern count = 1 Max back reference = 1 Partial matching not supported @@ -4365,7 +4343,7 @@ Options: dotall No first char Need char = 'a' -/(.*)a(b)\2/sI +/(.*)a(b)\2/Is Capturing subpattern count = 2 Max back reference = 2 Partial matching not supported @@ -4373,14 +4351,14 @@ Options: anchored dotall No first char Need char = 'b' -/((.*)a|(.*)b)z/sI +/((.*)a|(.*)b)z/Is Capturing subpattern count = 3 Partial matching not supported Options: anchored dotall No first char Need char = 'z' -/((.*)a|(.*)b)z\1/sI +/((.*)a|(.*)b)z\1/Is Capturing subpattern count = 3 Max back reference = 1 Partial matching not supported @@ -4388,7 +4366,7 @@ Options: dotall No first char Need char = 'z' -/((.*)a|(.*)b)z\2/sI +/((.*)a|(.*)b)z\2/Is Capturing subpattern count = 3 Max back reference = 2 Partial matching not supported @@ -4396,7 +4374,7 @@ Options: dotall No first char Need char = 'z' -/((.*)a|(.*)b)z\3/sI +/((.*)a|(.*)b)z\3/Is Capturing subpattern count = 3 Max back reference = 3 Partial matching not supported @@ -4404,7 +4382,7 @@ Options: dotall No first char Need char = 'z' -/((.*)a|^(.*)b)z\3/sI +/((.*)a|^(.*)b)z\3/Is Capturing subpattern count = 3 Max back reference = 3 Partial matching not supported @@ -4412,14 +4390,14 @@ Options: anchored dotall No first char Need char = 'z' -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is Capturing subpattern count = 31 Partial matching not supported Options: anchored dotall No first char No need char -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is Capturing subpattern count = 31 Max back reference = 31 Partial matching not supported @@ -4427,7 +4405,7 @@ Options: dotall No first char No need char -/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI +/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is Capturing subpattern count = 32 Max back reference = 32 Partial matching not supported @@ -4435,7 +4413,7 @@ Options: dotall No first char No need char -/(a)(bc)/ND +/(a)(bc)/IND ------------------------------------------------------------------ 0 21 Bra 0 3 5 Bra 0 @@ -4454,17 +4432,17 @@ Need char = 'c' abc 0: abc -/(?Pa)(bc)/ND +/(?Pa)(bc)/IND ------------------------------------------------------------------ - 0 21 Bra 0 - 3 5 Bra 1 - 6 a - 8 5 Ket - 11 7 Bra 0 - 14 bc - 18 7 Ket - 21 21 Ket - 24 End + 0 23 Bra 0 + 3 7 Bra 1 + 8 a + 10 7 Ket + 13 7 Bra 0 + 16 bc + 20 7 Ket + 23 23 Ket + 26 End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4476,17 +4454,17 @@ Need char = 'c' 0: abc 1: a -/(a)(?Pbc)/ND +/(a)(?Pbc)/IND ------------------------------------------------------------------ - 0 21 Bra 0 + 0 23 Bra 0 3 5 Bra 0 6 a 8 5 Ket - 11 7 Bra 1 - 14 bc - 18 7 Ket - 21 21 Ket - 24 End + 11 9 Bra 1 + 16 bc + 20 9 Ket + 23 23 Ket + 26 End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4495,7 +4473,7 @@ Options: no_auto_capture First char = 'a' Need char = 'c' -/(a+)*zz/ +/(a+)*zz/I Capturing subpattern count = 1 Partial matching not supported No options @@ -4503,15 +4481,15 @@ No first char Need char = 'z' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M Minimum match() limit = 8 -Minimum match() recursion limit = 7 +Minimum match() recursion limit = 6 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaz\M Minimum match() limit = 32768 -Minimum match() recursion limit = 43 +Minimum match() recursion limit = 42 No match -/(aaa(?C1)bbb|ab)/ +/(aaa(?C1)bbb|ab)/I Capturing subpattern count = 1 No options First char = 'a' @@ -4538,7 +4516,7 @@ Callout data = 1 Callout data = -1 No match -/ab(?Pcd)ef(?Pgh)/ +/ab(?Pcd)ef(?Pgh)/I Capturing subpattern count = 2 Named capturing subpatterns: one 1 @@ -4555,28 +4533,29 @@ Need char = 'h' 1: cd 2: gh 1C cd (2) - 2G gh (2) + G gh (2) two abcdefgh\Cone\Ctwo 0: abcdefgh 1: cd 2: gh - 1C cd (2) - 2C gh (2) + C cd (2) one + C gh (2) two abcdefgh\Cthree no parentheses with name "three" 0: abcdefgh 1: cd 2: gh +copy substring three failed -7 /(?P)(?P)/D ------------------------------------------------------------------ - 0 15 Bra 0 - 3 3 Bra 1 - 6 3 Ket - 9 3 Bra 2 - 12 3 Ket - 15 15 Ket - 18 End + 0 19 Bra 0 + 3 5 Bra 1 + 8 5 Ket + 11 5 Bra 2 + 16 5 Ket + 19 19 Ket + 22 End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4588,13 +4567,13 @@ No need char /(?P)(?P)/D ------------------------------------------------------------------ - 0 15 Bra 0 - 3 3 Bra 1 - 6 3 Ket - 9 3 Bra 2 - 12 3 Ket - 15 15 Ket - 18 End + 0 19 Bra 0 + 3 5 Bra 1 + 8 5 Ket + 11 5 Bra 2 + 16 5 Ket + 19 19 Ket + 22 End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4604,7 +4583,7 @@ No options No first char No need char -/(?Pzz)(?Paa)/ +/(?Pzz)(?Paa)/I Capturing subpattern count = 2 Named capturing subpatterns: A 2 @@ -4616,20 +4595,20 @@ Need char = 'a' 0: zzaa 1: zz 2: aa - 1C zz (2) + C zz (2) Z zzaa\CA 0: zzaa 1: zz 2: aa - 2C aa (2) + C aa (2) A -/(?Peks)(?Peccs)/ -Failed: two named groups have the same name at offset 16 +/(?Peks)(?Peccs)/I +Failed: two named subpatterns have the same name at offset 15 -/(?Pabc(?Pdef)(?Pxyz))/ -Failed: two named groups have the same name at offset 31 +/(?Pabc(?Pdef)(?Pxyz))/I +Failed: two named subpatterns have the same name at offset 30 -"\[((?P\d+)(,(?P>elem))*)\]" +"\[((?P\d+)(,(?P>elem))*)\]"I Capturing subpattern count = 3 Named capturing subpatterns: elem 2 @@ -4647,7 +4626,7 @@ No match [] No match -"\[((?P\d+)(,(?P>elem))*)?\]" +"\[((?P\d+)(,(?P>elem))*)?\]"I Capturing subpattern count = 3 Named capturing subpatterns: elem 2 @@ -4665,20 +4644,20 @@ Need char = ']' /(a(b(?2)c))?/D ------------------------------------------------------------------ - 0 31 Bra 0 + 0 35 Bra 0 3 Brazero - 4 24 Bra 1 - 7 a - 9 16 Bra 2 - 12 b - 14 6 Once - 17 9 Recurse - 20 6 Ket - 23 c - 25 16 Ket - 28 24 Ket - 31 31 Ket - 34 End + 4 28 Bra 1 + 9 a + 11 18 Bra 2 + 16 b + 18 6 Once + 21 11 Recurse + 24 6 Ket + 27 c + 29 18 Ket + 32 28 Ket + 35 35 Ket + 38 End ------------------------------------------------------------------ Capturing subpattern count = 2 No options @@ -4687,20 +4666,20 @@ No need char /(a(b(?2)c))*/D ------------------------------------------------------------------ - 0 31 Bra 0 + 0 35 Bra 0 3 Brazero - 4 24 Bra 1 - 7 a - 9 16 Bra 2 - 12 b - 14 6 Once - 17 9 Recurse - 20 6 Ket - 23 c - 25 16 Ket - 28 24 KetRmax - 31 31 Ket - 34 End + 4 28 Bra 1 + 9 a + 11 18 Bra 2 + 16 b + 18 6 Once + 21 11 Recurse + 24 6 Ket + 27 c + 29 18 Ket + 32 28 KetRmax + 35 35 Ket + 38 End ------------------------------------------------------------------ Capturing subpattern count = 2 No options @@ -4709,33 +4688,33 @@ No need char /(a(b(?2)c)){0,2}/D ------------------------------------------------------------------ - 0 65 Bra 0 + 0 73 Bra 0 3 Brazero - 4 58 Bra 0 - 7 24 Bra 1 - 10 a - 12 16 Bra 2 - 15 b - 17 6 Once - 20 12 Recurse - 23 6 Ket - 26 c - 28 16 Ket - 31 24 Ket - 34 Brazero - 35 24 Bra 1 - 38 a - 40 16 Bra 2 - 43 b - 45 6 Once - 48 12 Recurse - 51 6 Ket - 54 c - 56 16 Ket - 59 24 Ket - 62 58 Ket - 65 65 Ket - 68 End + 4 66 Bra 0 + 7 28 Bra 1 + 12 a + 14 18 Bra 2 + 19 b + 21 6 Once + 24 14 Recurse + 27 6 Ket + 30 c + 32 18 Ket + 35 28 Ket + 38 Brazero + 39 28 Bra 1 + 44 a + 46 18 Bra 2 + 51 b + 53 6 Once + 56 14 Recurse + 59 6 Ket + 62 c + 64 18 Ket + 67 28 Ket + 70 66 Ket + 73 73 Ket + 76 End ------------------------------------------------------------------ Capturing subpattern count = 2 No options @@ -4756,7 +4735,7 @@ No options No first char No need char -/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i +/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii Capturing subpattern count = 3 Partial matching not supported Options: caseless @@ -4766,7 +4745,7 @@ Need char = 'g' (caseless) 0: Baby Bjorn Active Carrier - With free SHIPPING!! 1: Baby Bjorn Active Carrier - With free SHIPPING!! -/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/iS +/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS Capturing subpattern count = 3 Partial matching not supported Options: caseless @@ -4777,7 +4756,7 @@ Study returned NULL 0: Baby Bjorn Active Carrier - With free SHIPPING!! 1: Baby Bjorn Active Carrier - With free SHIPPING!! -/a*.*b/SD +/a*.*b/ISD ------------------------------------------------------------------ 0 9 Bra 0 3 a* @@ -4793,19 +4772,19 @@ No first char Need char = 'b' Study returned NULL -/(a|b)*.?c/SD +/(a|b)*.?c/ISD ------------------------------------------------------------------ - 0 21 Bra 0 + 0 23 Bra 0 3 Brazero - 4 5 Bra 1 - 7 a - 9 5 Alt - 12 b - 14 10 KetRmax - 17 Any? - 19 c - 21 21 Ket - 24 End + 4 7 Bra 1 + 9 a + 11 5 Alt + 14 b + 16 12 KetRmax + 19 Any? + 21 c + 23 23 Ket + 26 End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -4829,7 +4808,7 @@ No options First char = 'a' Need char = 'f' -/abcde/CD +/abcde/ICD ------------------------------------------------------------------ 0 49 Bra 0 3 Callout 255 0 1 @@ -4868,11 +4847,11 @@ Need char = 'e' +4 ^ ^ e No match -/a*b/CD +/a*b/ICD ------------------------------------------------------------------ 0 25 Bra 0 3 Callout 255 0 2 - 9 a* + 9 a*+ 11 Callout 255 2 1 17 b 19 Callout 255 3 0 @@ -4900,22 +4879,12 @@ Need char = 'b' --->aaaacb +0 ^ a* +2 ^ ^ b - +2 ^ ^ b - +2 ^ ^ b - +2 ^^ b - +2 ^ b +0 ^ a* +2 ^ ^ b - +2 ^ ^ b - +2 ^^ b - +2 ^ b +0 ^ a* +2 ^ ^ b - +2 ^^ b - +2 ^ b +0 ^ a* +2 ^^ b - +2 ^ b +0 ^ a* +2 ^ b +0 ^ a* @@ -4923,11 +4892,11 @@ Need char = 'b' +3 ^^ 0: b -/a+b/CD +/a+b/ICD ------------------------------------------------------------------ 0 25 Bra 0 3 Callout 255 0 2 - 9 a+ + 9 a++ 11 Callout 255 2 1 17 b 19 Callout 255 3 0 @@ -4955,46 +4924,40 @@ Need char = 'b' --->aaaacb +0 ^ a+ +2 ^ ^ b - +2 ^ ^ b - +2 ^ ^ b - +2 ^^ b +0 ^ a+ +2 ^ ^ b - +2 ^ ^ b - +2 ^^ b +0 ^ a+ +2 ^ ^ b - +2 ^^ b +0 ^ a+ +2 ^^ b No match -/(abc|def)x/CD +/(abc|def)x/ICD ------------------------------------------------------------------ - 0 92 Bra 0 + 0 94 Bra 0 3 Callout 255 0 9 - 9 33 Bra 1 - 12 Callout 255 1 1 - 18 a - 20 Callout 255 2 1 - 26 b - 28 Callout 255 3 1 - 34 c - 36 Callout 255 4 0 - 42 33 Alt - 45 Callout 255 5 1 - 51 d - 53 Callout 255 6 1 - 59 e - 61 Callout 255 7 1 - 67 f - 69 Callout 255 8 0 - 75 66 Ket - 78 Callout 255 9 1 - 84 x - 86 Callout 255 10 0 - 92 92 Ket - 95 End + 9 35 Bra 1 + 14 Callout 255 1 1 + 20 a + 22 Callout 255 2 1 + 28 b + 30 Callout 255 3 1 + 36 c + 38 Callout 255 4 0 + 44 33 Alt + 47 Callout 255 5 1 + 53 d + 55 Callout 255 6 1 + 61 e + 63 Callout 255 7 1 + 69 f + 71 Callout 255 8 0 + 77 68 Ket + 80 Callout 255 9 1 + 86 x + 88 Callout 255 10 0 + 94 94 Ket + 97 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: @@ -5059,7 +5022,7 @@ Need char = 'x' +5 ^ d No match -/(ab|cd){3,4}/C +/(ab|cd){3,4}/IC Capturing subpattern count = 1 Options: No first char @@ -5123,34 +5086,34 @@ No need char 0: abcdcdcd 1: cd -/([ab]{,4}c|xy)/CD +/([ab]{,4}c|xy)/ICD ------------------------------------------------------------------ - 0 131 Bra 0 + 0 133 Bra 0 3 Callout 255 0 14 - 9 88 Bra 1 - 12 Callout 255 1 4 - 18 [ab] - 51 Callout 255 5 1 - 57 { - 59 Callout 255 6 1 - 65 , - 67 Callout 255 7 1 - 73 4 - 75 Callout 255 8 1 - 81 } - 83 Callout 255 9 1 - 89 c - 91 Callout 255 10 0 - 97 25 Alt -100 Callout 255 11 1 -106 x -108 Callout 255 12 1 -114 y -116 Callout 255 13 0 -122 113 Ket -125 Callout 255 14 0 -131 131 Ket -134 End + 9 90 Bra 1 + 14 Callout 255 1 4 + 20 [ab] + 53 Callout 255 5 1 + 59 { + 61 Callout 255 6 1 + 67 , + 69 Callout 255 7 1 + 75 4 + 77 Callout 255 8 1 + 83 } + 85 Callout 255 9 1 + 91 c + 93 Callout 255 10 0 + 99 25 Alt +102 Callout 255 11 1 +108 x +110 Callout 255 12 1 +116 y +118 Callout 255 13 0 +124 115 Ket +127 Callout 255 14 0 +133 133 Ket +136 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: @@ -5298,85 +5261,85 @@ No need char +11 ^ x No match -/([ab]{1,4}c|xy){4,5}?123/CD +/([ab]{1,4}c|xy){4,5}?123/ICD ------------------------------------------------------------------ - 0 485 Bra 0 + 0 495 Bra 0 3 Callout 255 0 21 - 9 61 Bra 1 - 12 Callout 255 1 9 - 18 [ab]{1,4} - 56 Callout 255 10 1 - 62 c - 64 Callout 255 11 0 - 70 25 Alt - 73 Callout 255 12 1 - 79 x - 81 Callout 255 13 1 - 87 y - 89 Callout 255 14 0 - 95 86 Ket - 98 61 Bra 1 -101 Callout 255 1 9 -107 [ab]{1,4} -145 Callout 255 10 1 -151 c -153 Callout 255 11 0 -159 25 Alt -162 Callout 255 12 1 -168 x -170 Callout 255 13 1 -176 y -178 Callout 255 14 0 -184 86 Ket -187 61 Bra 1 -190 Callout 255 1 9 -196 [ab]{1,4} -234 Callout 255 10 1 -240 c -242 Callout 255 11 0 -248 25 Alt -251 Callout 255 12 1 -257 x -259 Callout 255 13 1 -265 y -267 Callout 255 14 0 -273 86 Ket -276 61 Bra 1 -279 Callout 255 1 9 -285 [ab]{1,4} -323 Callout 255 10 1 -329 c -331 Callout 255 11 0 -337 25 Alt -340 Callout 255 12 1 -346 x -348 Callout 255 13 1 -354 y -356 Callout 255 14 0 -362 86 Ket -365 Braminzero -366 61 Bra 1 -369 Callout 255 1 9 -375 [ab]{1,4} -413 Callout 255 10 1 -419 c -421 Callout 255 11 0 -427 25 Alt -430 Callout 255 12 1 -436 x -438 Callout 255 13 1 -444 y -446 Callout 255 14 0 -452 86 Ket -455 Callout 255 21 1 -461 1 -463 Callout 255 22 1 -469 2 -471 Callout 255 23 1 -477 3 -479 Callout 255 24 0 -485 485 Ket -488 End + 9 63 Bra 1 + 14 Callout 255 1 9 + 20 [ab]{1,4} + 58 Callout 255 10 1 + 64 c + 66 Callout 255 11 0 + 72 25 Alt + 75 Callout 255 12 1 + 81 x + 83 Callout 255 13 1 + 89 y + 91 Callout 255 14 0 + 97 88 Ket +100 63 Bra 1 +105 Callout 255 1 9 +111 [ab]{1,4} +149 Callout 255 10 1 +155 c +157 Callout 255 11 0 +163 25 Alt +166 Callout 255 12 1 +172 x +174 Callout 255 13 1 +180 y +182 Callout 255 14 0 +188 88 Ket +191 63 Bra 1 +196 Callout 255 1 9 +202 [ab]{1,4} +240 Callout 255 10 1 +246 c +248 Callout 255 11 0 +254 25 Alt +257 Callout 255 12 1 +263 x +265 Callout 255 13 1 +271 y +273 Callout 255 14 0 +279 88 Ket +282 63 Bra 1 +287 Callout 255 1 9 +293 [ab]{1,4} +331 Callout 255 10 1 +337 c +339 Callout 255 11 0 +345 25 Alt +348 Callout 255 12 1 +354 x +356 Callout 255 13 1 +362 y +364 Callout 255 14 0 +370 88 Ket +373 Braminzero +374 63 Bra 1 +379 Callout 255 1 9 +385 [ab]{1,4} +423 Callout 255 10 1 +429 c +431 Callout 255 11 0 +437 25 Alt +440 Callout 255 12 1 +446 x +448 Callout 255 13 1 +454 y +456 Callout 255 14 0 +462 88 Ket +465 Callout 255 21 1 +471 1 +473 Callout 255 22 1 +479 2 +481 Callout 255 23 1 +487 3 +489 Callout 255 24 0 +495 495 Ket +498 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -5436,7 +5399,7 @@ No need char Xbcd12345 0: bcd12345 -/abcde/ +/abcde/I Capturing subpattern count = 0 No options First char = 'a' @@ -5456,7 +5419,7 @@ No match the quick brown abxyz fox\P No match -"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$" +"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I Capturing subpattern count = 3 Options: anchored No first char @@ -5539,7 +5502,7 @@ No options No first char Need char = 'E' -/[abc]?123/ +/[abc]?123/I Capturing subpattern count = 0 No options No first char @@ -5557,7 +5520,7 @@ Partial match c123\P 0: c123 -/^(?:\d){3,5}X/ +/^(?:\d){3,5}X/I Capturing subpattern count = 0 Options: anchored No first char @@ -5583,7 +5546,7 @@ No match 123456\P No match -/abc/>testsavedregex +/abc/I>testsavedregex Capturing subpattern count = 0 No options First char = 'a' @@ -5592,10 +5555,6 @@ Compiled regex written to testsavedregex testsavedregex +/abc/IF>testsavedregex Capturing subpattern count = 0 No options First char = 'a' @@ -5612,10 +5571,6 @@ Compiled regex written to testsavedregex testsavedregex +/(a|b)/IS>testsavedregex Capturing subpattern count = 1 No options No first char @@ -5634,11 +5589,6 @@ Study data written to testsavedregex testsavedregex +/(a|b)/ISF>testsavedregex Capturing subpattern count = 1 No options No first char @@ -5659,11 +5609,6 @@ Study data written to testsavedregex (.)*~smg +~<(\w+)/?>(.)*~smgI Capturing subpattern count = 3 Max back reference = 1 Partial matching not supported @@ -5692,7 +5637,7 @@ Options: anchored No first char No need char -/line\nbreak/ +/line\nbreak/I Capturing subpattern count = 0 No options First char = 'l' @@ -5702,7 +5647,7 @@ Need char = 'k' line one\nthis is a line\nbreak in the second line 0: line\x0abreak -/line\nbreak/f +/line\nbreak/If Capturing subpattern count = 0 Options: firstline First char = 'l' @@ -5714,7 +5659,7 @@ No match line one\nthis is a line\nbreak in the second line No match -/line\nbreak/mf +/line\nbreak/Imf Capturing subpattern count = 0 Options: multiline firstline First char = 'l' @@ -5726,7 +5671,7 @@ No match line one\nthis is a line\nbreak in the second line No match -/ab.cd/P +/ab.cd/IP ab-cd 0: ab-cd ab=cd @@ -5736,7 +5681,7 @@ No match: POSIX code 17: match failed ab\ncd No match: POSIX code 17: match failed -/ab.cd/Ps +/ab.cd/IPs ab-cd 0: ab-cd ab=cd @@ -5744,7 +5689,7 @@ No match: POSIX code 17: match failed ab\ncd 0: ab\x0acd -/(?i)(?-i)AbCd/ +/(?i)(?-i)AbCd/I Capturing subpattern count = 0 No options First char = 'A' @@ -5756,27 +5701,26 @@ No match abcd No match -/a{11111111111111111111}/ +/a{11111111111111111111}/I Failed: number too big in {} quantifier at offset 22 -/(){64294967295}/ +/(){64294967295}/I Failed: number too big in {} quantifier at offset 14 -/(){2,4294967295}/ +/(){2,4294967295}/I Failed: number too big in {} quantifier at offset 15 -"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B" +"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I Capturing subpattern count = 1 Max back reference = 1 No options -Case state changes First char = 'a' (caseless) Need char = 'B' abcdefghijklAkB 0: abcdefghijklAkB 1: k -"(?Pa)(?Pb)(?Pc)(?Pd)(?Pe)(?Pf)(?Pg)(?Ph)(?Pi)(?Pj)(?Pk)(?Pl)A\11B" +"(?Pa)(?Pb)(?Pc)(?Pd)(?Pe)(?Pf)(?Pg)(?Ph)(?Pi)(?Pj)(?Pk)(?Pl)A\11B"I Capturing subpattern count = 12 Max back reference = 11 Named capturing subpatterns: @@ -5810,7 +5754,7 @@ Need char = 'B' 11: k 12: l -"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B" +"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I Capturing subpattern count = 12 Max back reference = 11 No options @@ -5831,7 +5775,7 @@ Need char = 'B' 11: k 12: l -"(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)" +"(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)"I Capturing subpattern count = 101 Named capturing subpatterns: name0 1 @@ -5956,7 +5900,7 @@ Matched, but too many substrings 13: a 14: 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)(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)(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)(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)(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)(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)"I Capturing subpattern count = 101 No options First char = 'a' @@ -5979,7 +5923,7 @@ Matched, but too many substrings 13: a 14: a -/[^()]*(?:\((?R)\)[^()]*)*/ +/[^()]*(?:\((?R)\)[^()]*)*/I Capturing subpattern count = 0 Partial matching not supported No options @@ -5992,7 +5936,7 @@ No need char (this(and)that)stuff 0: (this(and)that)stuff -/[^()]*(?:\((?>(?R))\)[^()]*)*/ +/[^()]*(?:\((?>(?R))\)[^()]*)*/I Capturing subpattern count = 0 Partial matching not supported No options @@ -6003,7 +5947,7 @@ No need char (this(and)that) 0: (this(and)that) -/[^()]*(?:\((?R)\))*[^()]*/ +/[^()]*(?:\((?R)\))*[^()]*/I Capturing subpattern count = 0 Partial matching not supported No options @@ -6014,7 +5958,7 @@ No need char (this(and)that) 0: (this(and)that) -/(?:\((?R)\))*[^()]*/ +/(?:\((?R)\))*[^()]*/I Capturing subpattern count = 0 Partial matching not supported No options @@ -6027,7 +5971,7 @@ No need char ((this)) 0: ((this)) -/(?:\((?R)\))|[^()]*/ +/(?:\((?R)\))|[^()]*/I Capturing subpattern count = 0 Partial matching not supported No options @@ -6042,25 +5986,2144 @@ No need char ((this)) 0: ((this)) -/a(b)c/PN +/a(b)c/IPN abc Matched with REG_NOSUB -/a(?Pb)c/PN +/a(?Pb)c/IPN abc Matched with REG_NOSUB -/\x{100}/ +/\x{100}/I Failed: character value in \x{...} sequence is too large at offset 6 -/\x{0000ff}/ +/\x{0000ff}/I Capturing subpattern count = 0 No options First char = 255 No need char -/ End of testinput2 / -Capturing subpattern count = 0 -No options -First char = ' ' -Need char = ' ' +/^((?Pa1)|(?Pa2)b)/I +Failed: two named subpatterns have the same name at offset 17 + +/^((?Pa1)|(?Pa2)b)/IJ +Capturing subpattern count = 3 +Named capturing subpatterns: + A 2 + A 3 +Options: anchored dupnames +No first char +No need char + a1b\CA + 0: a1 + 1: a1 + 2: a1 + C a1 (2) A + a2b\CA + 0: a2b + 1: a2b + 2: + 3: a2 + C a2 (2) A + ** Failers +No match + a1b\CZ\CA +no parentheses with name "Z" + 0: a1 + 1: a1 + 2: a1 +copy substring Z failed -7 + C a1 (2) A + +/^(?Pa)(?Pb)/IJ +Capturing subpattern count = 2 +Named capturing subpatterns: + A 1 + A 2 +Options: anchored dupnames +No first char +No need char + ab\CA + 0: ab + 1: a + 2: b + C a (1) A + +/^(?Pa)(?Pb)|cd/IJ +Capturing subpattern count = 2 +Named capturing subpatterns: + A 1 + A 2 +Options: dupnames +No first char +No need char + ab\CA + 0: ab + 1: a + 2: b + C a (1) A + cd\CA + 0: cd +copy substring A failed -7 + +/^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ +Capturing subpattern count = 4 +Named capturing subpatterns: + A 1 + A 2 + A 3 + A 4 +Options: dupnames +No first char +No need char + cdefgh\CA + 0: cdefgh + 1: + 2: + 3: ef + 4: gh + C ef (2) A + +/^((?Pa1)|(?Pa2)b)/IJ +Capturing subpattern count = 3 +Named capturing subpatterns: + A 2 + A 3 +Options: anchored dupnames +No first char +No need char + a1b\GA + 0: a1 + 1: a1 + 2: a1 + G a1 (2) A + a2b\GA + 0: a2b + 1: a2b + 2: + 3: a2 + G a2 (2) A + ** Failers +No match + a1b\GZ\GA +no parentheses with name "Z" + 0: a1 + 1: a1 + 2: a1 +copy substring Z failed -7 + G a1 (2) A + +/^(?Pa)(?Pb)/IJ +Capturing subpattern count = 2 +Named capturing subpatterns: + A 1 + A 2 +Options: anchored dupnames +No first char +No need char + ab\GA + 0: ab + 1: a + 2: b + G a (1) A + +/^(?Pa)(?Pb)|cd/IJ +Capturing subpattern count = 2 +Named capturing subpatterns: + A 1 + A 2 +Options: dupnames +No first char +No need char + ab\GA + 0: ab + 1: a + 2: b + G a (1) A + cd\GA + 0: cd +copy substring A failed -7 + +/^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ +Capturing subpattern count = 4 +Named capturing subpatterns: + A 1 + A 2 + A 3 + A 4 +Options: dupnames +No first char +No need char + cdefgh\GA + 0: cdefgh + 1: + 2: + 3: ef + 4: gh + G ef (2) A + +/(?J)^((?Pa1)|(?Pa2)b)/I +Capturing subpattern count = 3 +Named capturing subpatterns: + A 2 + A 3 +Options: anchored dupnames +No first char +No need char + a1b\CA + 0: a1 + 1: a1 + 2: a1 + C a1 (2) A + a2b\CA + 0: a2b + 1: a2b + 2: + 3: a2 + C a2 (2) A + +/^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I +Failed: two named subpatterns have the same name at offset 37 + +/ In this next test, J is not set at the outer level; consequently it isn't +set in the pattern's options; consequently pcre_get_named_substring() produces +a random value. /Ix +Capturing subpattern count = 1 +Options: extended +First char = 'I' +Need char = 'e' + +/^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I +Capturing subpattern count = 4 +Named capturing subpatterns: + A 1 + B 2 + B 3 + C 4 +Options: anchored +No first char +No need char + a bc d\CA\CB\CC + 0: a bc d + 1: a + 2: b + 3: c + 4: d + C a (1) A + C b (1) B + C d (1) C + +/^(?Pa)?(?(A)a|b)/I +Capturing subpattern count = 1 +Named capturing subpatterns: + A 1 +Options: anchored +No first char +No need char + aabc + 0: aa + 1: a + bc + 0: b + ** Failers +No match + abc +No match + +/(?:(?(ZZ)a|b)(?PX))+/I +Capturing subpattern count = 1 +Named capturing subpatterns: + ZZ 1 +No options +No first char +Need char = 'X' + bXaX + 0: bXaX + 1: X + +/(?:(?(2y)a|b)(X))+/I +Failed: reference to non-existent subpattern at offset 9 + +/(?:(?(ZA)a|b)(?PX))+/I +Failed: reference to non-existent subpattern at offset 9 + +/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?PX))+/I +Capturing subpattern count = 1 +Named capturing subpatterns: + ZZ 1 +No options +No first char +Need char = 'X' + bbXaaX + 0: bbXaaX + 1: X + +/(?:(?(ZZ)a|\(b\))\\(?PX))+/I +Capturing subpattern count = 1 +Named capturing subpatterns: + ZZ 1 +No options +No first char +Need char = 'X' + (b)\\Xa\\X + 0: (b)\Xa\X + 1: X + +/(?PX|Y))+/I +Capturing subpattern count = 1 +Max back reference = 1 +Named capturing subpatterns: + A 1 +No options +No first char +No need char + bXXaYYaY + 0: bXXaYYaY + 1: Y + bXYaXXaX + 0: bX + 1: X + +/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?PX|Y))+/I +Capturing subpattern count = 10 +Max back reference = 10 +Named capturing subpatterns: + A 10 +No options +No first char +No need char + bXXaYYaY + 0: bXXaYYaY + 1: + 2: + 3: + 4: + 5: + 6: + 7: + 8: + 9: +10: Y + +/\777/I +Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3 + +/\s*,\s*/IS +Capturing subpattern count = 0 +Partial matching not supported +No options +No first char +Need char = ',' +Starting byte set: \x09 \x0a \x0c \x0d \x20 , + \x0b,\x0b + 0: , + \x0c,\x0d + 0: \x0c,\x0d + +/^abc/Im +Capturing subpattern count = 0 +Options: multiline +First char at start or follows newline +Need char = 'c' + xyz\nabc + 0: abc + xyz\nabc\ + 0: abc + xyz\r\nabc\ + 0: abc + xyz\rabc\ + 0: abc + xyz\r\nabc\ + 0: abc + ** Failers +No match + xyz\nabc\ +No match + xyz\r\nabc\ +No match + xyz\nabc\ +No match + xyz\rabc\ +No match + xyz\rabc\ +No match + +/abc$/Im +Capturing subpattern count = 0 +Options: multiline +Forced newline sequence: LF +First char = 'a' +Need char = 'c' + xyzabc + 0: abc + xyzabc\n + 0: abc + xyzabc\npqr + 0: abc + xyzabc\r\ + 0: abc + xyzabc\rpqr\ + 0: abc + xyzabc\r\n\ + 0: abc + xyzabc\r\npqr\ + 0: abc + ** Failers +No match + xyzabc\r +No match + xyzabc\rpqr +No match + xyzabc\r\n +No match + xyzabc\r\npqr +No match + +/^abc/Im +Capturing subpattern count = 0 +Options: multiline +Forced newline sequence: CR +First char at start or follows newline +Need char = 'c' + xyz\rabcdef + 0: abc + xyz\nabcdef\ + 0: abc + ** Failers +No match + xyz\nabcdef +No match + +/^abc/Im +Capturing subpattern count = 0 +Options: multiline +Forced newline sequence: LF +First char at start or follows newline +Need char = 'c' + xyz\nabcdef + 0: abc + xyz\rabcdef\ + 0: abc + ** Failers +No match + xyz\rabcdef +No match + +/^abc/Im +Capturing subpattern count = 0 +Options: multiline +Forced newline sequence: CRLF +First char at start or follows newline +Need char = 'c' + xyz\r\nabcdef + 0: abc + xyz\rabcdef\ + 0: abc + ** Failers +No match + xyz\rabcdef +No match + +/^abc/Im +Unknown newline type at: + + +/abc/I +Capturing subpattern count = 0 +No options +First char = 'a' +Need char = 'c' + xyz\rabc\ +Unknown newline type at: + abc + 0: abc + +/.*/I +Capturing subpattern count = 0 +Partial matching not supported +Options: +Forced newline sequence: LF +First char at start or follows newline +No need char + abc\ndef + 0: abc + abc\rdef + 0: abc\x0ddef + abc\r\ndef + 0: abc\x0d + \abc\ndef + 0: abc\x0adef + \abc\rdef + 0: abc + \abc\r\ndef + 0: abc + \abc\ndef + 0: abc\x0adef + \abc\rdef + 0: abc\x0ddef + \abc\r\ndef + 0: abc + +/\w+(.)(.)?def/Is +Capturing subpattern count = 2 +Partial matching not supported +Options: dotall +No first char +Need char = 'f' + abc\ndef + 0: abc\x0adef + 1: \x0a + abc\rdef + 0: abc\x0ddef + 1: \x0d + abc\r\ndef + 0: abc\x0d\x0adef + 1: \x0d + 2: \x0a + ++((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char + /* this is a C style comment */\M +Minimum match() limit = 120 +Minimum match() recursion limit = 6 + 0: /* this is a C style comment */ + 1: /* this is a C style comment */ + +/(?P25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I +Capturing subpattern count = 1 +Named capturing subpatterns: + B 1 +No options +No first char +Need char = '.' + +/()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + ()()()()()()()()()()()()()()()()()()()() + (.(.))/Ix +Capturing subpattern count = 102 +Options: extended +No first char +No need char + XY\O400 + 0: XY + 1: + 2: + 3: + 4: + 5: + 6: + 7: + 8: + 9: +10: +11: +12: +13: +14: +15: +16: +17: +18: +19: +20: +21: +22: +23: +24: +25: +26: +27: +28: +29: +30: +31: +32: +33: +34: +35: +36: +37: +38: +39: +40: +41: +42: +43: +44: +45: +46: +47: +48: +49: +50: +51: +52: +53: +54: +55: +56: +57: +58: +59: +60: +61: +62: +63: +64: +65: +66: +67: +68: +69: +70: +71: +72: +73: +74: +75: +76: +77: +78: +79: +80: +81: +82: +83: +84: +85: +86: +87: +88: +89: +90: +91: +92: +93: +94: +95: +96: +97: +98: +99: +100: +101: XY +102: Y + +/(a*b|(?i:c*(?-i)d))/IS +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char +Starting byte set: C a b c d + +/()[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b + +/(|)[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b + +/(|c)[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b c + +/(|c?)[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b c + +/(d?|c?)[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b c d + +/(d?|c)[ab]xyz/IS +Capturing subpattern count = 1 +No options +No first char +Need char = 'z' +Starting byte set: a b c d + +/^a*b\d/D +------------------------------------------------------------------ + 0 9 Bra 0 + 3 ^ + 4 a*+ + 6 b + 8 \d + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: anchored +No first char +Need char = 'b' + +/^a*+b\d/D +------------------------------------------------------------------ + 0 9 Bra 0 + 3 ^ + 4 a*+ + 6 b + 8 \d + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: anchored +No first char +Need char = 'b' + +/^a*?b\d/D +------------------------------------------------------------------ + 0 9 Bra 0 + 3 ^ + 4 a*+ + 6 b + 8 \d + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: anchored +No first char +Need char = 'b' + +/^a+A\d/D +------------------------------------------------------------------ + 0 9 Bra 0 + 3 ^ + 4 a++ + 6 A + 8 \d + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: anchored +No first char +Need char = 'A' + aaaA5 + 0: aaaA5 + ** Failers +No match + aaaa5 +No match + +/^a*A\d/IiD +------------------------------------------------------------------ + 0 9 Bra 0 + 3 ^ + 4 a* + 6 NC A + 8 \d + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: anchored caseless +No first char +Need char = 'A' (caseless) + aaaA5 + 0: aaaA5 + aaaa5 + 0: aaaa5 + +/(a*|b*)[cd]/IS +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char +Starting byte set: a b c d + +/(a+|b*)[cd]/IS +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char +Starting byte set: a b c d + +/(a*|b+)[cd]/IS +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char +Starting byte set: a b c d + +/(a+|b+)[cd]/IS +Capturing subpattern count = 1 +Partial matching not supported +No options +No first char +No need char +Starting byte set: a b + +/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( + ((( + a + )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + ))) +/Ix +Capturing subpattern count = 203 +Options: extended +First char = 'a' +No need char + large nest +Matched, but too many substrings + 0: a + 1: a + 2: a + 3: a + 4: a + 5: a + 6: a + 7: a + 8: a + 9: a +10: a +11: a +12: a +13: a +14: a + +/a*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a*+ + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/0*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 0* + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/0*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 0*+ + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a*+ + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/ *\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 * + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/ *\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 *+ + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a* + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 a*+ + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/=*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 =*+ + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/=*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 =* + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \d*+ + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\d*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \d* + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\d*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d* + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d*+ + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d*+ + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d* + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\d*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \d*+ + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \D* + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\D*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \D*+ + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\D*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D*+ + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D* + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D* + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\D*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \D* + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \s*+ + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\s*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \s*+ + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\s*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s*+ + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s* + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s*+ + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s*+ + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\s*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \s* + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \S* + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\S*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \S* + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\S*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S* + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S*+ + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S* + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\S*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \S* + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \w* + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\w*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \w* + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\w*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w* + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w*+ + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w* + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\w*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \w*+ + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \W*+ + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\W*2/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \W*+ + 5 2 + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\W*\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W*+ + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*\D/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W* + 5 \D + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*\s/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W* + 5 \s + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*\S/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W* + 5 \S + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*\w/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W*+ + 5 \w + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\W*\W/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \W* + 5 \W + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/[^a]+a/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 [^a]++ + 5 a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/[^a]+a/Bi +------------------------------------------------------------------ + 0 7 Bra 0 + 3 [^A]++ + 5 NC a + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/[^a]+A/Bi +------------------------------------------------------------------ + 0 7 Bra 0 + 3 [^A]++ + 5 NC A + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/[^a]+b/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 [^a]+ + 5 b + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/[^a]+\d/B +------------------------------------------------------------------ + 0 6 Bra 0 + 3 [^a]+ + 5 \d + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/a*[^a]/B +------------------------------------------------------------------ + 0 7 Bra 0 + 3 a* + 5 [^a] + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/(?Px)(?Py)/I +Capturing subpattern count = 2 +Named capturing subpatterns: + abc 1 + xyz 2 +No options +First char = 'x' +Need char = 'y' + xy\Cabc\Cxyz + 0: xy + 1: x + 2: y + C x (1) abc + C y (1) xyz + +/(?x)(?'xyz'y)/I +Capturing subpattern count = 2 +Named capturing subpatterns: + abc 1 + xyz 2 +No options +First char = 'x' +Need char = 'y' + xy\Cabc\Cxyz + 0: xy + 1: x + 2: y + C x (1) abc + C y (1) xyz + +/(?x)(?'xyz>y)/I +Failed: syntax error in subpattern name (missing terminator) at offset 15 + +/(?P'abc'x)(?Py)/I +Failed: unrecognized character after (?P at offset 3 + +/^(?:(?(ZZ)a|b)(?X))+/ + bXaX + 0: bXaX + 1: X + bXbX + 0: bX + 1: X + ** Failers +No match + aXaX +No match + aXbX +No match + +/^(?P>abc)(?xxx)/ +Failed: reference to non-existent subpattern at offset 8 + +/^(?P>abc)(?x|y)/ + xx + 0: xx + 1: x + xy + 0: xy + 1: y + yy + 0: yy + 1: y + yx + 0: yx + 1: x + +/^(?P>abc)(?Px|y)/ + xx + 0: xx + 1: x + xy + 0: xy + 1: y + yy + 0: yy + 1: y + yx + 0: yx + 1: x + +/^((?(abc)a|b)(?x|y))+/ + bxay + 0: bxay + 1: ay + 2: y + bxby + 0: bx + 1: bx + 2: x + ** Failers +No match + axby +No match + +/^(((?P=abc)|X)(?x|y))+/ + XxXxxx + 0: XxXxxx + 1: xx + 2: x + 3: x + XxXyyx + 0: XxXyyx + 1: yx + 2: y + 3: x + XxXyxx + 0: XxXy + 1: Xy + 2: X + 3: y + ** Failers +No match + x +No match + +/^(?1)(abc)/ + abcabc + 0: abcabc + 1: abc + +/^(?:(?:\1|X)(a|b))+/ + Xaaa + 0: Xaaa + 1: a + Xaba + 0: Xa + 1: a + +/^[\E\Qa\E-\Qz\E]+/B +------------------------------------------------------------------ + 0 38 Bra 0 + 3 ^ + 4 [a-z]+ + 38 38 Ket + 41 End +------------------------------------------------------------------ + +/^[a\Q]bc\E]/B +------------------------------------------------------------------ + 0 37 Bra 0 + 3 ^ + 4 [\]a-c] + 37 37 Ket + 40 End +------------------------------------------------------------------ + +/^[a-\Q\E]/B +------------------------------------------------------------------ + 0 37 Bra 0 + 3 ^ + 4 [\-a] + 37 37 Ket + 40 End +------------------------------------------------------------------ + +/^(?P>abc)[()](?)/B +------------------------------------------------------------------ + 0 54 Bra 0 + 3 ^ + 4 6 Once + 7 46 Recurse + 10 6 Ket + 13 [()] + 46 5 Bra 1 + 51 5 Ket + 54 54 Ket + 57 End +------------------------------------------------------------------ + +/^((?(abc)y)[()](?Px))+/B +------------------------------------------------------------------ + 0 66 Bra 0 + 3 ^ + 4 59 Bra 1 + 9 8 Cond + 12 2 Cond ref + 15 y + 17 8 Ket + 20 [()] + 53 7 Bra 2 + 58 x + 60 7 Ket + 63 59 KetRmax + 66 66 Ket + 69 End +------------------------------------------------------------------ + (xy)x + 0: (xy)x + 1: y)x + 2: x + +/^(?P>abc)\Q()\E(?)/B +------------------------------------------------------------------ + 0 25 Bra 0 + 3 ^ + 4 6 Once + 7 17 Recurse + 10 6 Ket + 13 () + 17 5 Bra 1 + 22 5 Ket + 25 25 Ket + 28 End +------------------------------------------------------------------ + +/^(?P>abc)[a\Q(]\E(](?)/B +------------------------------------------------------------------ + 0 54 Bra 0 + 3 ^ + 4 6 Once + 7 46 Recurse + 10 6 Ket + 13 [(\]a] + 46 5 Bra 1 + 51 5 Ket + 54 54 Ket + 57 End +------------------------------------------------------------------ + +/^(?P>abc) # this is (a comment) + (?)/Bx +------------------------------------------------------------------ + 0 21 Bra 0 + 3 ^ + 4 6 Once + 7 13 Recurse + 10 6 Ket + 13 5 Bra 1 + 18 5 Ket + 21 21 Ket + 24 End +------------------------------------------------------------------ + +/^\W*(?:(?(?.)\W*(?&one)\W*\k|)|(?(?.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii +Capturing subpattern count = 4 +Max back reference = 4 +Named capturing subpatterns: + four 4 + one 1 + three 3 + two 2 +Partial matching not supported +Options: anchored caseless +No first char +No need char + 1221 + 0: 1221 + 1: 1221 + 2: 1 + Satan, oscillate my metallic sonatas! + 0: Satan, oscillate my metallic sonatas! + 1: + 2: + 3: Satan, oscillate my metallic sonatas + 4: S + A man, a plan, a canal: Panama! + 0: A man, a plan, a canal: Panama! + 1: + 2: + 3: A man, a plan, a canal: Panama + 4: A + Able was I ere I saw Elba. + 0: Able was I ere I saw Elba. + 1: + 2: + 3: Able was I ere I saw Elba + 4: A + *** Failers +No match + The quick brown fox +No match + +/(?=(\w+))\1:/I +Capturing subpattern count = 1 +Max back reference = 1 +Partial matching not supported +No options +No first char +Need char = ':' + abcd: + 0: abcd: + 1: abcd + +/(?=(?'abc'\w+))\k:/I +Capturing subpattern count = 1 +Max back reference = 1 +Named capturing subpatterns: + abc 1 +Partial matching not supported +No options +No first char +Need char = ':' + abcd: + 0: abcd: + 1: abcd + +/(?'abc'\w+):\k{2}/ + a:aaxyz + 0: a:aa + 1: a + ab:ababxyz + 0: ab:abab + 1: ab + ** Failers +No match + a:axyz +No match + ab:abxyz +No match + +/(?'abc'a|b)(?d|e)\k{2}/J + adaa + 0: adaa + 1: a + 2: d + ** Failers +No match + addd +No match + adbb +No match + +/(?'abc'a|b)(?d|e)(?&abc){2}/J + bdaa + 0: bdaa + 1: b + 2: d + bdab + 0: bdab + 1: b + 2: d + ** Failers +No match + bddd +No match + +/^(?a)? (?()b|c) (?('ab')d|e)/x + abd + 0: abd + 1: a + ce + 0: ce + +/(?( (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x + abcabc1Xabc2XabcXabcabc + 0: abcabc1Xabc2XabcX + 1: abcabc1Xabc2XabcX + 2: abcabc1Xabc2XabcX + +/(? (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x +Failed: reference to non-existent subpattern at offset 29 + +/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x + abcabc1Xabc2XabcXabcabc + 0: abcabc1Xabc2XabcX + 1: abcabc1Xabc2XabcX + 2: abcabc1Xabc2XabcX + +/^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) /x + abcd + 0: ab + 1: + 2: + +/(?(?&NAME_PAT))\s+(?(?&ADDRESS_PAT)) + (?(DEFINE) + (?[a-z]+) + (?\d+) + )/x + metcalfe 33 + 0: metcalfe 33 + 1: metcalfe + 2: 33 + 3: + 4: + +/^(?(DEFINE) abc | xyz ) /x +Failed: DEFINE group contains more than one branch at offset 22 + +/(?(DEFINE) abc) xyz/xI +Capturing subpattern count = 0 +Options: extended +First char = 'x' +Need char = 'z' + +/(?(DEFINE) abc){3} xyz/x +Failed: repeating a DEFINE group is not allowed at offset 17 + +/(a|)*\d/ + \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 +Matched, but too many substrings + +/^a.b/ + a\rb + 0: a\x0db + a\nb\ + 0: a\x0ab + ** Failers +No match + a\nb +No match + a\nb\ +No match + a\rb\ +No match + a\rb\ +No match + +/^abc./mgx + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + +/abc.$/mgx + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc9 + +/a/ +Failed: inconsistent NEWLINE options at offset 0 + +/a/ +Failed: inconsistent NEWLINE options at offset 0 + +/^a\Rb/ + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + ** Failers +No match + a\n\rb +No match + +/^a\R*b/ + ab + 0: ab + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + a\n\rb + 0: a\x0a\x0db + a\n\r\x85\x0cb + 0: a\x0a\x0d\x85\x0cb + +/^a\R+b/ + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + a\n\rb + 0: a\x0a\x0db + a\n\r\x85\x0cb + 0: a\x0a\x0d\x85\x0cb + ** Failers +No match + ab +No match + +/^a\R{1,3}b/ + a\nb + 0: a\x0ab + a\n\rb + 0: a\x0a\x0db + a\n\r\x85b + 0: a\x0a\x0d\x85b + a\r\n\r\nb + 0: a\x0d\x0a\x0d\x0ab + a\r\n\r\n\r\nb + 0: a\x0d\x0a\x0d\x0a\x0d\x0ab + a\n\r\n\rb + 0: a\x0a\x0d\x0a\x0db + a\n\n\r\nb + 0: a\x0a\x0a\x0d\x0ab + ** Failers +No match + a\n\n\n\rb +No match + a\r +No match + +/^a[\R]b/ + aRb + 0: aRb + ** Failers +No match + a\nb +No match + +/(?&abc)X(?P)/I +Capturing subpattern count = 1 +Named capturing subpatterns: + abc 1 +No options +No first char +Need char = 'P' + abcPXP123 + 0: PXP + 1: P + +/(?1)X(?P)/I +Capturing subpattern count = 1 +Named capturing subpatterns: + abc 1 +No options +No first char +Need char = 'P' + abcPXP123 + 0: PXP + 1: P + +/(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ + 1.2.3.4 + 0: 1.2.3.4 + 1: + 2: .4 + 131.111.10.206 + 0: 131.111.10.206 + 1: + 2: .206 + 10.0.0.0 + 0: 10.0.0.0 + 1: + 2: .0 + ** Failers +No match + 10.6 +No match + 455.3.4.5 +No match + +/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ + 1.2.3.4 + 0: 1.2.3.4 + 1: .4 + 2: + 131.111.10.206 + 0: 131.111.10.206 + 1: .206 + 2: + 10.0.0.0 + 0: 10.0.0.0 + 1: .0 + 2: + ** Failers +No match + 10.6 +No match + 455.3.4.5 +No match + +/(?:a(?&abc)b)*(?x)/ + 123axbaxbaxbx456 + 0: axbaxbaxbx + 1: x + 123axbaxbaxb456 + 0: x + 1: x + +/(?:a(?&abc)b){1,5}(?x)/ + 123axbaxbaxbx456 + 0: axbaxbaxbx + 1: x + +/(?:a(?&abc)b){2,5}(?x)/ + 123axbaxbaxbx456 + 0: axbaxbaxbx + 1: x + +/(?:a(?&abc)b){2,}(?x)/ + 123axbaxbaxbx456 + 0: axbaxbaxbx + 1: x + +/(abc)(?i:(?1))/ + defabcabcxyz + 0: abcabc + 1: abc + DEFabcABCXYZ +No match + +/(abc)(?:(?i)(?1))/ + defabcabcxyz + 0: abcabc + 1: abc + DEFabcABCXYZ +No match + +/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ + ababababbbabZXXXX + 0: ababababbbabZ + 1: ab + 2: b + +/^(a)\g-2/ +Failed: reference to non-existent subpattern at offset 4 + +/^(a)\g/ +Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 + +/^(a)\g{0}/ +Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 + +/^(a)\g{3/ +Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 + +/^(a)\g{4a}/ +Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 + +/^a.b/ + a\rb + 0: a\x0db + *** Failers +No match + a\nb +No match + +/.+foo/ + afoo + 0: afoo + ** Failers +No match + \r\nfoo +No match + \nfoo +No match + +/.+foo/ + afoo + 0: afoo + \nfoo + 0: \x0afoo + ** Failers +No match + \r\nfoo +No match + +/.+foo/ + afoo + 0: afoo + ** Failers +No match + \nfoo +No match + \r\nfoo +No match + +/.+foo/s + afoo + 0: afoo + \r\nfoo + 0: \x0d\x0afoo + \nfoo + 0: \x0afoo + +/ End of testinput2 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput3 tin-1.9.2/pcre/testdata/testoutput3 --- tin-1.9.1/pcre/testdata/testoutput3 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput3 2006-12-19 10:31:35.000000000 +0100 @@ -149,9 +149,9 @@ No match /[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR ------------------------------------------------------------------ 0 102 Bra 0 - 3 [A-Za-zªµºÀ-ÖØ-öø-ÿ] - 36 [a-zµß-öø-ÿ] - 69 [A-ZÀ-ÖØ-Þ] + 3 [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + 36 [a-z\xb5\xdf-\xf6\xf8-\xff] + 69 [A-Z\xc0-\xd6\xd8-\xde] 102 102 Ket 105 End ------------------------------------------------------------------ diff -Nurp tin-1.9.1/pcre/testdata/testoutput4 tin-1.9.2/pcre/testdata/testoutput4 --- tin-1.9.1/pcre/testdata/testoutput4 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput4 2006-12-19 10:31:35.000000000 +0100 @@ -898,8 +898,24 @@ No match \x{85} 0: \x{85} +/^ሴ/8 + ሴ + 0: \x{1234} + /^\ሴ/8 ሴ 0: \x{1234} +"(?s)(.{1,5})"8 + abcdefg + 0: abcde + 1: abcde + ab + 0: ab + 1: ab + +/a*\x{100}*\w/8 + a + 0: a + / End of testinput4 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput5 tin-1.9.2/pcre/testdata/testoutput5 --- tin-1.9.1/pcre/testdata/testoutput5 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput5 2006-12-19 10:31:35.000000000 +0100 @@ -103,7 +103,7 @@ First char = 195 Need char = 191 /[\x{100}]/8DM -Memory allocation (code space): 47 +Memory allocation (code space): 15 ------------------------------------------------------------------ 0 11 Bra 0 3 [\x{100}] @@ -429,11 +429,11 @@ No match /Ä€{3,4}/8SD ------------------------------------------------------------------ - 0 13 Bra 0 + 0 11 Bra 0 3 \x{100}{3} - 8 \x{100}{,1} - 13 13 Ket - 16 End + 8 \x{100}? + 11 11 Ket + 14 End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -446,28 +446,9 @@ Study returned NULL /(\x{100}+|x)/8SD ------------------------------------------------------------------ - 0 17 Bra 0 - 3 6 Bra 1 - 6 \x{100}+ - 9 5 Alt - 12 x - 14 11 Ket - 17 17 Ket - 20 End ------------------------------------------------------------------- -Capturing subpattern count = 1 -Partial matching not supported -Options: utf8 -No first char -No need char -Starting byte set: x \xc4 - -/(\x{100}*a|x)/8SD ------------------------------------------------------------------- 0 19 Bra 0 3 8 Bra 1 - 6 \x{100}* - 9 a + 8 \x{100}+ 11 5 Alt 14 x 16 13 Ket @@ -479,13 +460,13 @@ Partial matching not supported Options: utf8 No first char No need char -Starting byte set: a x \xc4 +Starting byte set: x \xc4 -/(\x{100}{0,2}a|x)/8SD +/(\x{100}*a|x)/8SD ------------------------------------------------------------------ 0 21 Bra 0 3 10 Bra 1 - 6 \x{100}{,2} + 8 \x{100}*+ 11 a 13 5 Alt 16 x @@ -500,18 +481,37 @@ No first char No need char Starting byte set: a x \xc4 +/(\x{100}{0,2}a|x)/8SD +------------------------------------------------------------------ + 0 23 Bra 0 + 3 12 Bra 1 + 8 \x{100}{0,2} + 13 a + 15 5 Alt + 18 x + 20 17 Ket + 23 23 Ket + 26 End +------------------------------------------------------------------ +Capturing subpattern count = 1 +Partial matching not supported +Options: utf8 +No first char +No need char +Starting byte set: a x \xc4 + /(\x{100}{1,2}a|x)/8SD ------------------------------------------------------------------ - 0 24 Bra 0 - 3 13 Bra 1 - 6 \x{100} - 9 \x{100}{,1} - 14 a - 16 5 Alt - 19 x - 21 18 Ket - 24 24 Ket - 27 End + 0 26 Bra 0 + 3 15 Bra 1 + 8 \x{100} + 11 \x{100}{0,1} + 16 a + 18 5 Alt + 21 x + 23 20 Ket + 26 26 Ket + 29 End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -628,7 +628,7 @@ Need char = 129 /\x{100}*A/8D ------------------------------------------------------------------ 0 8 Bra 0 - 3 \x{100}* + 3 \x{100}*+ 6 A 8 8 Ket 11 End @@ -644,7 +644,7 @@ Need char = 'A' /\x{100}*\d(?R)/8D ------------------------------------------------------------------ 0 16 Bra 0 - 3 \x{100}* + 3 \x{100}*+ 6 \d 7 6 Once 10 0 Recurse @@ -683,7 +683,7 @@ No first char No need char /[\x{100}]/8DM -Memory allocation (code space): 47 +Memory allocation (code space): 15 ------------------------------------------------------------------ 0 11 Bra 0 3 [\x{100}] @@ -912,16 +912,16 @@ No match /\x{100}abc(xyz(?1))/8D ------------------------------------------------------------------ - 0 33 Bra 0 + 0 35 Bra 0 3 \x{100}abc - 12 18 Bra 1 - 15 xyz - 21 6 Once - 24 12 Recurse - 27 6 Ket - 30 18 Ket - 33 33 Ket - 36 End + 12 20 Bra 1 + 17 xyz + 23 6 Once + 26 12 Recurse + 29 6 Ket + 32 20 Ket + 35 35 Ket + 38 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 @@ -930,17 +930,17 @@ Need char = 'z' /[^\x{100}]abc(xyz(?1))/8D ------------------------------------------------------------------ - 0 38 Bra 0 + 0 40 Bra 0 3 [^\x{100}] 11 abc - 17 18 Bra 1 - 20 xyz - 26 6 Once - 29 17 Recurse - 32 6 Ket - 35 18 Ket - 38 38 Ket - 41 End + 17 20 Bra 1 + 22 xyz + 28 6 Once + 31 17 Recurse + 34 6 Ket + 37 20 Ket + 40 40 Ket + 43 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 @@ -949,17 +949,17 @@ Need char = 'z' /[ab\x{100}]abc(xyz(?1))/8D ------------------------------------------------------------------ - 0 70 Bra 0 + 0 72 Bra 0 3 [ab\x{100}] 43 abc - 49 18 Bra 1 - 52 xyz - 58 6 Once - 61 49 Recurse - 64 6 Ket - 67 18 Ket - 70 70 Ket - 73 End + 49 20 Bra 1 + 54 xyz + 60 6 Once + 63 49 Recurse + 66 6 Ket + 69 20 Ket + 72 72 Ket + 75 End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 @@ -968,20 +968,20 @@ Need char = 'z' /(\x{100}(b(?2)c))?/D8 ------------------------------------------------------------------ - 0 32 Bra 0 + 0 36 Bra 0 3 Brazero - 4 25 Bra 1 - 7 \x{100} - 10 16 Bra 2 - 13 b - 15 6 Once - 18 10 Recurse - 21 6 Ket - 24 c - 26 16 Ket - 29 25 Ket - 32 32 Ket - 35 End + 4 29 Bra 1 + 9 \x{100} + 12 18 Bra 2 + 17 b + 19 6 Once + 22 12 Recurse + 25 6 Ket + 28 c + 30 18 Ket + 33 29 Ket + 36 36 Ket + 39 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 @@ -990,33 +990,33 @@ No need char /(\x{100}(b(?2)c)){0,2}/D8 ------------------------------------------------------------------ - 0 67 Bra 0 + 0 75 Bra 0 3 Brazero - 4 60 Bra 0 - 7 25 Bra 1 - 10 \x{100} - 13 16 Bra 2 - 16 b - 18 6 Once - 21 13 Recurse - 24 6 Ket - 27 c - 29 16 Ket - 32 25 Ket - 35 Brazero - 36 25 Bra 1 - 39 \x{100} - 42 16 Bra 2 - 45 b - 47 6 Once - 50 13 Recurse - 53 6 Ket - 56 c - 58 16 Ket - 61 25 Ket - 64 60 Ket - 67 67 Ket - 70 End + 4 68 Bra 0 + 7 29 Bra 1 + 12 \x{100} + 15 18 Bra 2 + 20 b + 22 6 Once + 25 15 Recurse + 28 6 Ket + 31 c + 33 18 Ket + 36 29 Ket + 39 Brazero + 40 29 Bra 1 + 45 \x{100} + 48 18 Bra 2 + 53 b + 55 6 Once + 58 15 Recurse + 61 6 Ket + 64 c + 66 18 Ket + 69 29 Ket + 72 68 Ket + 75 75 Ket + 78 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 @@ -1025,20 +1025,20 @@ No need char /(\x{100}(b(?1)c))?/D8 ------------------------------------------------------------------ - 0 32 Bra 0 + 0 36 Bra 0 3 Brazero - 4 25 Bra 1 - 7 \x{100} - 10 16 Bra 2 - 13 b - 15 6 Once - 18 4 Recurse - 21 6 Ket - 24 c - 26 16 Ket - 29 25 Ket - 32 32 Ket - 35 End + 4 29 Bra 1 + 9 \x{100} + 12 18 Bra 2 + 17 b + 19 6 Once + 22 4 Recurse + 25 6 Ket + 28 c + 30 18 Ket + 33 29 Ket + 36 36 Ket + 39 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 @@ -1047,33 +1047,33 @@ No need char /(\x{100}(b(?1)c)){0,2}/D8 ------------------------------------------------------------------ - 0 67 Bra 0 + 0 75 Bra 0 3 Brazero - 4 60 Bra 0 - 7 25 Bra 1 - 10 \x{100} - 13 16 Bra 2 - 16 b - 18 6 Once - 21 7 Recurse - 24 6 Ket - 27 c - 29 16 Ket - 32 25 Ket - 35 Brazero - 36 25 Bra 1 - 39 \x{100} - 42 16 Bra 2 - 45 b - 47 6 Once - 50 7 Recurse - 53 6 Ket - 56 c - 58 16 Ket - 61 25 Ket - 64 60 Ket - 67 67 Ket - 70 End + 4 68 Bra 0 + 7 29 Bra 1 + 12 \x{100} + 15 18 Bra 2 + 20 b + 22 6 Once + 25 7 Recurse + 28 6 Ket + 31 c + 33 18 Ket + 36 29 Ket + 39 Brazero + 40 29 Bra 1 + 45 \x{100} + 48 18 Bra 2 + 53 b + 55 6 Once + 58 7 Recurse + 61 6 Ket + 64 c + 66 18 Ket + 69 29 Ket + 72 68 Ket + 75 75 Ket + 78 End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 @@ -1107,4 +1107,297 @@ Options: anchored utf8 No first char No need char +/\777/I +Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3 + +/\777/8I +Capturing subpattern count = 0 +Options: utf8 +First char = 199 +Need char = 191 + \x{1ff} + 0: \x{1ff} + \777 + 0: \x{1ff} + +/\x{100}*\d/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}*+ + 6 \d + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}*\s/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}*+ + 6 \s + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}*\w/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}*+ + 6 \w + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}*\D/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}* + 6 \D + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}*\S/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}* + 6 \S + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}*\W/8D +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{100}* + 6 \W + 7 7 Ket + 10 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +No first char +No need char + +/\x{100}+\x{200}/8D +------------------------------------------------------------------ + 0 9 Bra 0 + 3 \x{100}++ + 6 \x{200} + 9 9 Ket + 12 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +First char = 196 +Need char = 128 + +/\x{100}+X/8D +------------------------------------------------------------------ + 0 8 Bra 0 + 3 \x{100}++ + 6 X + 8 8 Ket + 11 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +First char = 196 +Need char = 'X' + +/X+\x{200}/8D +------------------------------------------------------------------ + 0 8 Bra 0 + 3 X++ + 5 \x{200} + 8 8 Ket + 11 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Partial matching not supported +Options: utf8 +First char = 'X' +Need char = 128 + +/()()()()()()()()()() + ()()()()()()()()()() + ()()()()()()()()()() + ()()()()()()()()()() + A (x) (?41) B/8x + AxxB +Matched, but too many substrings + 0: AxxB + 1: + 2: + 3: + 4: + 5: + 6: + 7: + 8: + 9: +10: +11: +12: +13: +14: + +/^[\x{100}\E-\Q\E\x{150}]/B8 +------------------------------------------------------------------ + 0 14 Bra 0 + 3 ^ + 4 [\x{100}-\x{150}] + 14 14 Ket + 17 End +------------------------------------------------------------------ + +/^[\QÄ€\E-\QÅ\E]/B8 +------------------------------------------------------------------ + 0 14 Bra 0 + 3 ^ + 4 [\x{100}-\x{150}] + 14 14 Ket + 17 End +------------------------------------------------------------------ + +/^[\QÄ€\E-\QÅ\E/B8 +Failed: missing terminating ] for character class at offset 15 + +/^abc./mgx8 + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + 0: abc8 + 0: abc9 + +/abc.$/mgx8 + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + 0: abc8 + 0: abc9 + +/^a\Rb/8 + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0cb + 0: a\x{0c}b + a\x{85}b + 0: a\x{85}b + a\x{2028}b + 0: a\x{2028}b + a\x{2029}b + 0: a\x{2029}b + ** Failers +No match + a\n\rb +No match + +/^a\R*b/8 + ab + 0: ab + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0c\x{2028}\x{2029}b + 0: a\x{0c}\x{2028}\x{2029}b + a\x{85}b + 0: a\x{85}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}\x0cb + 0: a\x{0a}\x{0d}\x{85}\x{0c}b + +/^a\R+b/8 + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0c\x{2028}\x{2029}b + 0: a\x{0c}\x{2028}\x{2029}b + a\x{85}b + 0: a\x{85}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}\x0cb + 0: a\x{0a}\x{0d}\x{85}\x{0c}b + ** Failers +No match + ab +No match + +/^a\R{1,3}b/8 + a\nb + 0: a\x{0a}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}b + 0: a\x{0a}\x{0d}\x{85}b + a\r\n\r\nb + 0: a\x{0d}\x{0a}\x{0d}\x{0a}b + a\r\n\r\n\r\nb + 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b + a\n\r\n\rb + 0: a\x{0a}\x{0d}\x{0a}\x{0d}b + a\n\n\r\nb + 0: a\x{0a}\x{0a}\x{0d}\x{0a}b + ** Failers +No match + a\n\n\n\rb +No match + a\r +No match + / End of testinput5 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput6 tin-1.9.2/pcre/testdata/testoutput6 --- tin-1.9.1/pcre/testdata/testoutput6 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput6 2006-12-19 10:31:35.000000000 +0100 @@ -609,7 +609,7 @@ No first char No need char /[\p{Nd}]/8DM -Memory allocation (code space): 47 +Memory allocation (code space): 15 ------------------------------------------------------------------ 0 11 Bra 0 3 [\p{Nd}] @@ -1394,4 +1394,42 @@ No match AXY No match +/^(\p{Z}[^\p{C}\p{Z}]+)*$/ + \xa0! + 0: \xa0! + 1: \xa0! + +/^[\pL](abc)(?1)/ + AabcabcYZ + 0: Aabcabc + 1: abc + +/([\pL]=(abc))*X/ + L=abcX + 0: L=abcX + 1: L=abc + 2: abc + +/The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE +will match it only with UCP support, because without that it has no notion +of case for anything other than the ASCII letters. / + +/((?i)[\x{c0}])/8 + \x{c0} + 0: \x{c0} + 1: \x{c0} + \x{e0} + 0: \x{e0} + 1: \x{e0} + +/(?i:[\x{c0}])/8 + \x{c0} + 0: \x{c0} + \x{e0} + 0: \x{e0} + +/^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/8 + \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} + 0: \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} + / End of testinput6 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput7 tin-1.9.2/pcre/testdata/testoutput7 --- tin-1.9.1/pcre/testdata/testoutput7 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput7 2006-12-19 10:31:35.000000000 +0100 @@ -2735,7 +2735,7 @@ No match No match /^a b - c/x + c/x abc 0: abc @@ -2973,7 +2973,7 @@ No match {4,5a}bc 0: {4,5a}bc -/^a.b/ +/^a.b/ a\rb 0: a\x0db *** Failers @@ -3003,13 +3003,13 @@ No match abc\xd3 0: abc\xd3 -/(abc)\500/ +/(abc)\100/ abc\x40 0: abc@ abc\100 0: abc@ -/(abc)\5000/ +/(abc)\1000/ abc\x400 0: abc@0 abc\x40\x30 @@ -3039,9 +3039,9 @@ No match abcdefghijk\12S 0: abcdefghijk\x0aS -/ab\gdef/ - abgdef - 0: abgdef +/ab\hdef/ + abhdef + 0: abhdef /a{0}bc/ bc @@ -6522,4 +6522,434 @@ Partial match: 123 4\P\R 0: 4 +/^/mg + a\nb\nc\n + 0: + 0: + 0: + \ + 0: + +/(?<=C\n)^/mg + A\nC\nC\n + 0: + +/(?s)A?B/ + AB + 0: AB + aB + 0: B + +/(?s)A*B/ + AB + 0: AB + aB + 0: B + +/(?m)A?B/ + AB + 0: AB + aB + 0: B + +/(?m)A*B/ + AB + 0: AB + aB + 0: B + +/Content-Type\x3A[^\r\n]{6,}/ + Content-Type:xxxxxyyy + 0: Content-Type:xxxxxyyy + 1: Content-Type:xxxxxyy + 2: Content-Type:xxxxxy + +/Content-Type\x3A[^\r\n]{6,}z/ + Content-Type:xxxxxyyyz + 0: Content-Type:xxxxxyyyz + +/Content-Type\x3A[^a]{6,}/ + Content-Type:xxxyyy + 0: Content-Type:xxxyyy + +/Content-Type\x3A[^a]{6,}z/ + Content-Type:xxxyyyz + 0: Content-Type:xxxyyyz + +/^abc/m + xyz\nabc + 0: abc + xyz\nabc\ + 0: abc + xyz\r\nabc\ + 0: abc + xyz\rabc\ + 0: abc + xyz\r\nabc\ + 0: abc + ** Failers +No match + xyz\nabc\ +No match + xyz\r\nabc\ +No match + xyz\nabc\ +No match + xyz\rabc\ +No match + xyz\rabc\ +No match + +/abc$/m + xyzabc + 0: abc + xyzabc\n + 0: abc + xyzabc\npqr + 0: abc + xyzabc\r\ + 0: abc + xyzabc\rpqr\ + 0: abc + xyzabc\r\n\ + 0: abc + xyzabc\r\npqr\ + 0: abc + ** Failers +No match + xyzabc\r +No match + xyzabc\rpqr +No match + xyzabc\r\n +No match + xyzabc\r\npqr +No match + +/^abc/m + xyz\rabcdef + 0: abc + xyz\nabcdef\ + 0: abc + ** Failers +No match + xyz\nabcdef +No match + +/^abc/m + xyz\nabcdef + 0: abc + xyz\rabcdef\ + 0: abc + ** Failers +No match + xyz\rabcdef +No match + +/^abc/m + xyz\r\nabcdef + 0: abc + xyz\rabcdef\ + 0: abc + ** Failers +No match + xyz\rabcdef +No match + +/.*/ + abc\ndef + 0: abc + 1: ab + 2: a + 3: + abc\rdef + 0: abc\x0ddef + 1: abc\x0dde + 2: abc\x0dd + 3: abc\x0d + 4: abc + 5: ab + 6: a + 7: + abc\r\ndef + 0: abc\x0d + 1: abc + 2: ab + 3: a + 4: + \abc\ndef + 0: abc\x0adef + 1: abc\x0ade + 2: abc\x0ad + 3: abc\x0a + 4: abc + 5: ab + 6: a + 7: + \abc\rdef + 0: abc + 1: ab + 2: a + 3: + \abc\r\ndef + 0: abc + 1: ab + 2: a + 3: + \abc\ndef + 0: abc\x0adef + 1: abc\x0ade + 2: abc\x0ad + 3: abc\x0a + 4: abc + 5: ab + 6: a + 7: + \abc\rdef + 0: abc\x0ddef + 1: abc\x0dde + 2: abc\x0dd + 3: abc\x0d + 4: abc + 5: ab + 6: a + 7: + \abc\r\ndef + 0: abc + 1: ab + 2: a + 3: + +/\w+(.)(.)?def/s + abc\ndef + 0: abc\x0adef + abc\rdef + 0: abc\x0ddef + abc\r\ndef + 0: abc\x0d\x0adef + +/^\w+=.*(\\\n.*)*/ + abc=xyz\\\npqr + 0: abc=xyz\\x0apqr + 1: abc=xyz\\x0apq + 2: abc=xyz\\x0ap + 3: abc=xyz\\x0a + 4: abc=xyz\ + 5: abc=xyz + 6: abc=xy + 7: abc=x + 8: abc= + +/^(a()*)*/ + aaaa + 0: aaaa + 1: aaa + 2: aa + 3: a + 4: + +/^(?:a(?:(?:))*)*/ + aaaa + 0: aaaa + 1: aaa + 2: aa + 3: a + 4: + +/^(a()+)+/ + aaaa + 0: aaaa + 1: aaa + 2: aa + 3: a + +/^(?:a(?:(?:))+)+/ + aaaa + 0: aaaa + 1: aaa + 2: aa + 3: a + +/(a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?>a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/(?:a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + +/^a.b/ + a\rb + 0: a\x0db + a\nb\ + 0: a\x0ab + ** Failers +No match + a\nb +No match + a\nb\ +No match + a\rb\ +No match + a\rb\ +No match + +/^abc./mgx + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + +/abc.$/mgx + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc9 + +/^a\Rb/ + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + ** Failers +No match + a\n\rb +No match + +/^a\R*b/ + ab + 0: ab + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + a\n\rb + 0: a\x0a\x0db + a\n\r\x85\x0cb + 0: a\x0a\x0d\x85\x0cb + +/^a\R+b/ + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + a\r\nb + 0: a\x0d\x0ab + a\x0bb + 0: a\x0bb + a\x0cb + 0: a\x0cb + a\x85b + 0: a\x85b + a\n\rb + 0: a\x0a\x0db + a\n\r\x85\x0cb + 0: a\x0a\x0d\x85\x0cb + ** Failers +No match + ab +No match + +/^a\R{1,3}b/ + a\nb + 0: a\x0ab + a\n\rb + 0: a\x0a\x0db + a\n\r\x85b + 0: a\x0a\x0d\x85b + a\r\n\r\nb + 0: a\x0d\x0a\x0d\x0ab + a\r\n\r\n\r\nb + 0: a\x0d\x0a\x0d\x0a\x0d\x0ab + a\n\r\n\rb + 0: a\x0a\x0d\x0a\x0db + a\n\n\r\nb + 0: a\x0a\x0a\x0d\x0ab + ** Failers +No match + a\n\n\n\rb +No match + a\r +No match + +/^a[\R]b/ + aRb + 0: aRb + ** Failers +No match + a\nb +No match + +/.+foo/ + afoo + 0: afoo + ** Failers +No match + \r\nfoo +No match + \nfoo +No match + +/.+foo/ + afoo + 0: afoo + \nfoo + 0: \x0afoo + ** Failers +No match + \r\nfoo +No match + +/.+foo/ + afoo + 0: afoo + ** Failers +No match + \nfoo +No match + \r\nfoo +No match + +/.+foo/s + afoo + 0: afoo + \r\nfoo + 0: \x0d\x0afoo + \nfoo + 0: \x0afoo + / End of testinput7 / diff -Nurp tin-1.9.1/pcre/testdata/testoutput8 tin-1.9.2/pcre/testdata/testoutput8 --- tin-1.9.1/pcre/testdata/testoutput8 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/testdata/testoutput8 2006-12-19 10:31:35.000000000 +0100 @@ -1028,4 +1028,114 @@ No match \x{85} 0: \x{85} +/^abc./mgx8 + abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + 0: abc8 + 0: abc9 + +/abc.$/mgx8 + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9 + 0: abc1 + 0: abc2 + 0: abc3 + 0: abc4 + 0: abc5 + 0: abc6 + 0: abc7 + 0: abc8 + 0: abc9 + +/^a\Rb/8 + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0cb + 0: a\x{0c}b + a\x{85}b + 0: a\x{85}b + a\x{2028}b + 0: a\x{2028}b + a\x{2029}b + 0: a\x{2029}b + ** Failers +No match + a\n\rb +No match + +/^a\R*b/8 + ab + 0: ab + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0c\x{2028}\x{2029}b + 0: a\x{0c}\x{2028}\x{2029}b + a\x{85}b + 0: a\x{85}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}\x0cb + 0: a\x{0a}\x{0d}\x{85}\x{0c}b + +/^a\R+b/8 + a\nb + 0: a\x{0a}b + a\rb + 0: a\x{0d}b + a\r\nb + 0: a\x{0d}\x{0a}b + a\x0bb + 0: a\x{0b}b + a\x0c\x{2028}\x{2029}b + 0: a\x{0c}\x{2028}\x{2029}b + a\x{85}b + 0: a\x{85}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}\x0cb + 0: a\x{0a}\x{0d}\x{85}\x{0c}b + ** Failers +No match + ab +No match + +/^a\R{1,3}b/8 + a\nb + 0: a\x{0a}b + a\n\rb + 0: a\x{0a}\x{0d}b + a\n\r\x{85}b + 0: a\x{0a}\x{0d}\x{85}b + a\r\n\r\nb + 0: a\x{0d}\x{0a}\x{0d}\x{0a}b + a\r\n\r\n\r\nb + 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b + a\n\r\n\rb + 0: a\x{0a}\x{0d}\x{0a}\x{0d}b + a\n\n\r\nb + 0: a\x{0a}\x{0a}\x{0d}\x{0a}b + ** Failers +No match + a\n\n\n\rb +No match + a\r +No match + / End of testinput 8 / diff -Nurp tin-1.9.1/pcre/ucp.h tin-1.9.2/pcre/ucp.h --- tin-1.9.1/pcre/ucp.h 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/ucp.h 2006-12-19 10:31:35.000000000 +0100 @@ -6,7 +6,9 @@ #define _UCP_H /* This file contains definitions of the property values that are returned by -the function _pcre_ucp_findprop(). */ +the function _pcre_ucp_findprop(). New values that are added for new releases +of Unicode should always be at the end of each enum, for backwards +compatibility. */ /* These are the general character categories. */ @@ -118,7 +120,12 @@ enum { ucp_Tibetan, ucp_Tifinagh, ucp_Ugaritic, - ucp_Yi + ucp_Yi, + ucp_Balinese, /* New for Unicode 5.0.0 */ + ucp_Cuneiform, /* New for Unicode 5.0.0 */ + ucp_Nko, /* New for Unicode 5.0.0 */ + ucp_Phags_Pa, /* New for Unicode 5.0.0 */ + ucp_Phoenician /* New for Unicode 5.0.0 */ }; #endif diff -Nurp tin-1.9.1/pcre/ucpinternal.h tin-1.9.2/pcre/ucpinternal.h --- tin-1.9.1/pcre/ucpinternal.h 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/ucpinternal.h 2006-12-19 10:31:35.000000000 +0100 @@ -2,6 +2,9 @@ * Unicode Property Table handler * *************************************************/ +#ifndef _UCPINTERNAL_H +#define _UCPINTERNAL_H + /* Internal header file defining the layout of the bits in each pair of 32-bit words that form a data item in the table. */ @@ -84,4 +87,6 @@ When searching the data, proceed as foll (2). */ +#endif /* _UCPINTERNAL_H */ + /* End of ucpinternal.h */ diff -Nurp tin-1.9.1/pcre/ucptable.c tin-1.9.2/pcre/ucptable.c --- tin-1.9.1/pcre/ucptable.c 2006-02-06 13:17:16.000000000 +0100 +++ tin-1.9.2/pcre/ucptable.c 2006-12-19 10:31:35.000000000 +0100 @@ -1,5 +1,6 @@ /* This source module is automatically generated from the Unicode -property table. See ucpinternal.h for a description of the layout. */ +property table. See ucpinternal.h for a description of the layout. +This version was made from the Unicode 5.0.0 tables. */ static cnode ucp_table[] = { { 0x09800000, 0x0000001f }, @@ -298,7 +299,7 @@ static cnode ucp_table[] = { { 0x2100017d, 0x24000001 }, { 0x2100017e, 0x1400ffff }, { 0x2100017f, 0x1400fed4 }, - { 0x21000180, 0x14000000 }, + { 0x21000180, 0x140000c3 }, { 0x21000181, 0x240000d2 }, { 0x21000182, 0x24000001 }, { 0x21000183, 0x1400ffff }, @@ -475,13 +476,27 @@ static cnode ucp_table[] = { { 0x21000232, 0x24000001 }, { 0x21000233, 0x1400ffff }, { 0x21800234, 0x14000005 }, - { 0x2100023a, 0x24000000 }, + { 0x2100023a, 0x24002a2b }, { 0x2100023b, 0x24000001 }, { 0x2100023c, 0x1400ffff }, { 0x2100023d, 0x2400ff5d }, - { 0x2100023e, 0x24000000 }, + { 0x2100023e, 0x24002a28 }, { 0x2180023f, 0x14000001 }, - { 0x21000241, 0x24000053 }, + { 0x21000241, 0x24000001 }, + { 0x21000242, 0x1400ffff }, + { 0x21000243, 0x2400ff3d }, + { 0x21000244, 0x24000045 }, + { 0x21000245, 0x24000047 }, + { 0x21000246, 0x24000001 }, + { 0x21000247, 0x1400ffff }, + { 0x21000248, 0x24000001 }, + { 0x21000249, 0x1400ffff }, + { 0x2100024a, 0x24000001 }, + { 0x2100024b, 0x1400ffff }, + { 0x2100024c, 0x24000001 }, + { 0x2100024d, 0x1400ffff }, + { 0x2100024e, 0x24000001 }, + { 0x2100024f, 0x1400ffff }, { 0x21800250, 0x14000002 }, { 0x21000253, 0x1400ff2e }, { 0x21000254, 0x1400ff32 }, @@ -499,25 +514,30 @@ static cnode ucp_table[] = { { 0x21800264, 0x14000003 }, { 0x21000268, 0x1400ff2f }, { 0x21000269, 0x1400ff2d }, - { 0x2180026a, 0x14000004 }, + { 0x2100026a, 0x14000000 }, + { 0x2100026b, 0x140029f7 }, + { 0x2180026c, 0x14000002 }, { 0x2100026f, 0x1400ff2d }, { 0x21800270, 0x14000001 }, { 0x21000272, 0x1400ff2b }, { 0x21800273, 0x14000001 }, { 0x21000275, 0x1400ff2a }, - { 0x21800276, 0x14000009 }, + { 0x21800276, 0x14000006 }, + { 0x2100027d, 0x140029e7 }, + { 0x2180027e, 0x14000001 }, { 0x21000280, 0x1400ff26 }, { 0x21800281, 0x14000001 }, { 0x21000283, 0x1400ff26 }, { 0x21800284, 0x14000003 }, { 0x21000288, 0x1400ff26 }, - { 0x21000289, 0x14000000 }, + { 0x21000289, 0x1400ffbb }, { 0x2100028a, 0x1400ff27 }, { 0x2100028b, 0x1400ff27 }, - { 0x2180028c, 0x14000005 }, + { 0x2100028c, 0x1400ffb9 }, + { 0x2180028d, 0x14000004 }, { 0x21000292, 0x1400ff25 }, { 0x21000293, 0x14000000 }, - { 0x21000294, 0x1400ffad }, + { 0x21000294, 0x1c000000 }, { 0x21800295, 0x1400001a }, { 0x218002b0, 0x18000011 }, { 0x098002c2, 0x60000003 }, @@ -532,6 +552,9 @@ static cnode ucp_table[] = { { 0x1b800346, 0x30000029 }, { 0x13800374, 0x60000001 }, { 0x1300037a, 0x18000000 }, + { 0x1300037b, 0x14000082 }, + { 0x1300037c, 0x14000082 }, + { 0x1300037d, 0x14000082 }, { 0x0900037e, 0x54000000 }, { 0x13800384, 0x60000001 }, { 0x13000386, 0x24000026 }, @@ -647,7 +670,9 @@ static cnode ucp_table[] = { { 0x130003fa, 0x24000001 }, { 0x130003fb, 0x1400ffff }, { 0x130003fc, 0x14000000 }, - { 0x138003fd, 0x24000002 }, + { 0x130003fd, 0x2400ff7e }, + { 0x130003fe, 0x2400ff7e }, + { 0x130003ff, 0x2400ff7e }, { 0x0c000400, 0x24000050 }, { 0x0c000401, 0x24000050 }, { 0x0c000402, 0x24000050 }, @@ -835,7 +860,7 @@ static cnode ucp_table[] = { { 0x0c0004bd, 0x1400ffff }, { 0x0c0004be, 0x24000001 }, { 0x0c0004bf, 0x1400ffff }, - { 0x0c0004c0, 0x24000000 }, + { 0x0c0004c0, 0x2400000f }, { 0x0c0004c1, 0x24000001 }, { 0x0c0004c2, 0x1400ffff }, { 0x0c0004c3, 0x24000001 }, @@ -850,6 +875,7 @@ static cnode ucp_table[] = { { 0x0c0004cc, 0x1400ffff }, { 0x0c0004cd, 0x24000001 }, { 0x0c0004ce, 0x1400ffff }, + { 0x0c0004cf, 0x1400fff1 }, { 0x0c0004d0, 0x24000001 }, { 0x0c0004d1, 0x1400ffff }, { 0x0c0004d2, 0x24000001 }, @@ -892,6 +918,12 @@ static cnode ucp_table[] = { { 0x0c0004f7, 0x1400ffff }, { 0x0c0004f8, 0x24000001 }, { 0x0c0004f9, 0x1400ffff }, + { 0x0c0004fa, 0x24000001 }, + { 0x0c0004fb, 0x1400ffff }, + { 0x0c0004fc, 0x24000001 }, + { 0x0c0004fd, 0x1400ffff }, + { 0x0c0004fe, 0x24000001 }, + { 0x0c0004ff, 0x1400ffff }, { 0x0c000500, 0x24000001 }, { 0x0c000501, 0x1400ffff }, { 0x0c000502, 0x24000001 }, @@ -908,6 +940,10 @@ static cnode ucp_table[] = { { 0x0c00050d, 0x1400ffff }, { 0x0c00050e, 0x24000001 }, { 0x0c00050f, 0x1400ffff }, + { 0x0c000510, 0x24000001 }, + { 0x0c000511, 0x1400ffff }, + { 0x0c000512, 0x24000001 }, + { 0x0c000513, 0x1400ffff }, { 0x01000531, 0x24000030 }, { 0x01000532, 0x24000030 }, { 0x01000533, 0x24000030 }, @@ -989,8 +1025,7 @@ static cnode ucp_table[] = { { 0x01000587, 0x14000000 }, { 0x09000589, 0x54000000 }, { 0x0100058a, 0x44000000 }, - { 0x19800591, 0x30000028 }, - { 0x198005bb, 0x30000002 }, + { 0x19800591, 0x3000002c }, { 0x190005be, 0x54000000 }, { 0x190005bf, 0x30000000 }, { 0x190005c0, 0x54000000 }, @@ -1043,6 +1078,13 @@ static cnode ucp_table[] = { { 0x37800780, 0x1c000025 }, { 0x378007a6, 0x3000000a }, { 0x370007b1, 0x1c000000 }, + { 0x3f8007c0, 0x34000009 }, + { 0x3f8007ca, 0x1c000020 }, + { 0x3f8007eb, 0x30000008 }, + { 0x3f8007f4, 0x18000001 }, + { 0x3f0007f6, 0x68000000 }, + { 0x3f8007f7, 0x54000002 }, + { 0x3f0007fa, 0x18000000 }, { 0x0e800901, 0x30000001 }, { 0x0e000903, 0x28000000 }, { 0x0e800904, 0x1c000035 }, @@ -1059,7 +1101,7 @@ static cnode ucp_table[] = { { 0x09800964, 0x54000001 }, { 0x0e800966, 0x34000009 }, { 0x09000970, 0x54000000 }, - { 0x0e00097d, 0x1c000000 }, + { 0x0e80097b, 0x1c000004 }, { 0x02000981, 0x30000000 }, { 0x02800982, 0x28000001 }, { 0x02800985, 0x1c000007 }, @@ -1203,7 +1245,9 @@ static cnode ucp_table[] = { { 0x1c800cd5, 0x28000001 }, { 0x1c000cde, 0x1c000000 }, { 0x1c800ce0, 0x1c000001 }, + { 0x1c800ce2, 0x30000001 }, { 0x1c800ce6, 0x34000009 }, + { 0x1c800cf1, 0x68000001 }, { 0x24800d02, 0x28000001 }, { 0x24800d05, 0x1c000007 }, { 0x24800d0e, 0x1c000002 }, @@ -1452,13 +1496,33 @@ static cnode ucp_table[] = { { 0x05801a17, 0x30000001 }, { 0x05801a19, 0x28000002 }, { 0x05801a1e, 0x54000001 }, + { 0x3d801b00, 0x30000003 }, + { 0x3d001b04, 0x28000000 }, + { 0x3d801b05, 0x1c00002e }, + { 0x3d001b34, 0x30000000 }, + { 0x3d001b35, 0x28000000 }, + { 0x3d801b36, 0x30000004 }, + { 0x3d001b3b, 0x28000000 }, + { 0x3d001b3c, 0x30000000 }, + { 0x3d801b3d, 0x28000004 }, + { 0x3d001b42, 0x30000000 }, + { 0x3d801b43, 0x28000001 }, + { 0x3d801b45, 0x1c000006 }, + { 0x3d801b50, 0x34000009 }, + { 0x3d801b5a, 0x54000006 }, + { 0x3d801b61, 0x68000009 }, + { 0x3d801b6b, 0x30000008 }, + { 0x3d801b74, 0x68000008 }, { 0x21801d00, 0x1400002b }, { 0x21801d2c, 0x18000035 }, { 0x21801d62, 0x14000015 }, { 0x0c001d78, 0x18000000 }, - { 0x21801d79, 0x14000021 }, + { 0x21801d79, 0x14000003 }, + { 0x21001d7d, 0x14000ee6 }, + { 0x21801d7e, 0x1400001c }, { 0x21801d9b, 0x18000024 }, - { 0x1b801dc0, 0x30000003 }, + { 0x1b801dc0, 0x3000000a }, + { 0x1b801dfe, 0x30000001 }, { 0x21001e00, 0x24000001 }, { 0x21001e01, 0x1400ffff }, { 0x21001e02, 0x24000001 }, @@ -1967,7 +2031,7 @@ static cnode ucp_table[] = { { 0x1b8020dd, 0x2c000003 }, { 0x1b0020e1, 0x30000000 }, { 0x1b8020e2, 0x2c000002 }, - { 0x1b8020e5, 0x30000006 }, + { 0x1b8020e5, 0x3000000a }, { 0x09802100, 0x68000001 }, { 0x09002102, 0x24000000 }, { 0x09802103, 0x68000003 }, @@ -1995,7 +2059,7 @@ static cnode ucp_table[] = { { 0x0900212e, 0x68000000 }, { 0x0900212f, 0x14000000 }, { 0x09802130, 0x24000001 }, - { 0x09002132, 0x68000000 }, + { 0x21002132, 0x2400001c }, { 0x09002133, 0x24000000 }, { 0x09002134, 0x14000000 }, { 0x09802135, 0x1c000003 }, @@ -2008,7 +2072,8 @@ static cnode ucp_table[] = { { 0x09802146, 0x14000003 }, { 0x0900214a, 0x68000000 }, { 0x0900214b, 0x64000000 }, - { 0x0900214c, 0x68000000 }, + { 0x0980214c, 0x68000001 }, + { 0x2100214e, 0x1400ffe4 }, { 0x09802153, 0x3c00000c }, { 0x09002160, 0x38000010 }, { 0x09002161, 0x38000010 }, @@ -2042,7 +2107,9 @@ static cnode ucp_table[] = { { 0x0900217d, 0x3800fff0 }, { 0x0900217e, 0x3800fff0 }, { 0x0900217f, 0x3800fff0 }, - { 0x09802180, 0x38000003 }, + { 0x09802180, 0x38000002 }, + { 0x09002183, 0x24000001 }, + { 0x21002184, 0x1400ffff }, { 0x09802190, 0x64000004 }, { 0x09802195, 0x68000004 }, { 0x0980219a, 0x64000001 }, @@ -2073,10 +2140,9 @@ static cnode ucp_table[] = { { 0x0900237c, 0x64000000 }, { 0x0980237d, 0x6800001d }, { 0x0980239b, 0x64000018 }, - { 0x090023b4, 0x58000000 }, - { 0x090023b5, 0x48000000 }, - { 0x090023b6, 0x54000000 }, - { 0x098023b7, 0x68000024 }, + { 0x098023b4, 0x68000027 }, + { 0x098023dc, 0x64000005 }, + { 0x098023e2, 0x68000005 }, { 0x09802400, 0x68000026 }, { 0x09802440, 0x6800000a }, { 0x09802460, 0x3c00003b }, @@ -2143,7 +2209,7 @@ static cnode ucp_table[] = { { 0x09802600, 0x6800006e }, { 0x0900266f, 0x64000000 }, { 0x09802670, 0x6800002c }, - { 0x098026a0, 0x68000011 }, + { 0x098026a0, 0x68000012 }, { 0x09802701, 0x68000003 }, { 0x09802706, 0x68000003 }, { 0x0980270c, 0x6800001b }, @@ -2174,6 +2240,7 @@ static cnode ucp_table[] = { { 0x098027c0, 0x64000004 }, { 0x090027c5, 0x58000000 }, { 0x090027c6, 0x48000000 }, + { 0x098027c7, 0x64000003 }, { 0x098027d0, 0x64000015 }, { 0x090027e6, 0x58000000 }, { 0x090027e7, 0x48000000 }, @@ -2215,7 +2282,8 @@ static cnode ucp_table[] = { { 0x090029fc, 0x58000000 }, { 0x090029fd, 0x48000000 }, { 0x098029fe, 0x64000101 }, - { 0x09802b00, 0x68000013 }, + { 0x09802b00, 0x6800001a }, + { 0x09802b20, 0x68000003 }, { 0x11002c00, 0x24000030 }, { 0x11002c01, 0x24000030 }, { 0x11002c02, 0x24000030 }, @@ -2310,6 +2378,23 @@ static cnode ucp_table[] = { { 0x11002c5c, 0x1400ffd0 }, { 0x11002c5d, 0x1400ffd0 }, { 0x11002c5e, 0x1400ffd0 }, + { 0x21002c60, 0x24000001 }, + { 0x21002c61, 0x1400ffff }, + { 0x21002c62, 0x2400d609 }, + { 0x21002c63, 0x2400f11a }, + { 0x21002c64, 0x2400d619 }, + { 0x21002c65, 0x1400d5d5 }, + { 0x21002c66, 0x1400d5d8 }, + { 0x21002c67, 0x24000001 }, + { 0x21002c68, 0x1400ffff }, + { 0x21002c69, 0x24000001 }, + { 0x21002c6a, 0x1400ffff }, + { 0x21002c6b, 0x24000001 }, + { 0x21002c6c, 0x1400ffff }, + { 0x21002c74, 0x14000000 }, + { 0x21002c75, 0x24000001 }, + { 0x21002c76, 0x1400ffff }, + { 0x21002c77, 0x14000000 }, { 0x0a002c80, 0x24000001 }, { 0x0a002c81, 0x1400ffff }, { 0x0a002c82, 0x24000001 }, @@ -2559,6 +2644,8 @@ static cnode ucp_table[] = { { 0x3c80a016, 0x1c000476 }, { 0x3c80a490, 0x68000036 }, { 0x0980a700, 0x60000016 }, + { 0x0980a717, 0x18000003 }, + { 0x0980a720, 0x60000001 }, { 0x3080a800, 0x1c000001 }, { 0x3000a802, 0x28000000 }, { 0x3080a803, 0x1c000002 }, @@ -2570,6 +2657,8 @@ static cnode ucp_table[] = { { 0x3080a825, 0x30000001 }, { 0x3000a827, 0x28000000 }, { 0x3080a828, 0x68000003 }, + { 0x4080a840, 0x1c000033 }, + { 0x4080a874, 0x54000003 }, { 0x1780ac00, 0x1c002ba3 }, { 0x0980d800, 0x1000037f }, { 0x0980db80, 0x1000007f }, @@ -2765,13 +2854,15 @@ static cnode ucp_table[] = { { 0x1301018a, 0x3c000000 }, { 0x29810300, 0x1c00001e }, { 0x29810320, 0x3c000003 }, - { 0x12810330, 0x1c000019 }, + { 0x12810330, 0x1c000010 }, + { 0x12010341, 0x38000000 }, + { 0x12810342, 0x1c000007 }, { 0x1201034a, 0x38000000 }, { 0x3b810380, 0x1c00001d }, { 0x3b01039f, 0x54000000 }, { 0x2a8103a0, 0x1c000023 }, { 0x2a8103c8, 0x1c000007 }, - { 0x2a0103d0, 0x68000000 }, + { 0x2a0103d0, 0x54000000 }, { 0x2a8103d1, 0x38000004 }, { 0x0d010400, 0x24000028 }, { 0x0d010401, 0x24000028 }, @@ -2861,6 +2952,9 @@ static cnode ucp_table[] = { { 0x0b810837, 0x1c000001 }, { 0x0b01083c, 0x1c000000 }, { 0x0b01083f, 0x1c000000 }, + { 0x41810900, 0x1c000015 }, + { 0x41810916, 0x3c000003 }, + { 0x4101091f, 0x54000000 }, { 0x1e010a00, 0x1c000000 }, { 0x1e810a01, 0x30000002 }, { 0x1e810a05, 0x30000001 }, @@ -2872,6 +2966,9 @@ static cnode ucp_table[] = { { 0x1e010a3f, 0x30000000 }, { 0x1e810a40, 0x3c000007 }, { 0x1e810a50, 0x54000008 }, + { 0x3e812000, 0x1c00036e }, + { 0x3e812400, 0x38000062 }, + { 0x3e812470, 0x54000003 }, { 0x0981d000, 0x680000f5 }, { 0x0981d100, 0x68000026 }, { 0x0981d12a, 0x6800003a }, @@ -2890,6 +2987,7 @@ static cnode ucp_table[] = { { 0x1381d242, 0x30000002 }, { 0x1301d245, 0x68000000 }, { 0x0981d300, 0x68000056 }, + { 0x0981d360, 0x3c000011 }, { 0x0981d400, 0x24000019 }, { 0x0981d41a, 0x14000019 }, { 0x0981d434, 0x24000019 }, @@ -2957,6 +3055,8 @@ static cnode ucp_table[] = { { 0x0981d7aa, 0x14000018 }, { 0x0901d7c3, 0x64000000 }, { 0x0981d7c4, 0x14000005 }, + { 0x0901d7ca, 0x24000000 }, + { 0x0901d7cb, 0x14000000 }, { 0x0981d7ce, 0x34000031 }, { 0x16820000, 0x1c00a6d6 }, { 0x1682f800, 0x1c00021d }, Binary files tin-1.9.1/po/de.gmo and tin-1.9.2/po/de.gmo differ diff -Nurp tin-1.9.1/po/de.po tin-1.9.2/po/de.po --- tin-1.9.1/po/de.po 2006-04-09 17:55:07.000000000 +0200 +++ tin-1.9.2/po/de.po 2007-02-01 14:02:43.003828162 +0100 @@ -5,9 +5,9 @@ # Christian Garbs , 2003 # msgid "" -msgstr "Project-Id-Version: tin 1.9.1\n" +msgstr "Project-Id-Version: tin 1.9.2\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2005-01-29 23:50+0100\n" "Last-Translator: Sven Hartge , Kai Bojens \n" @@ -16,7 +16,7 @@ msgstr "Project-Id-Version: tin 1.9.1\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "%d Fehlerhafter Overview-Datensatz (%d Felder) '%s'" @@ -190,156 +190,156 @@ msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=ZAHL\n" "# Threads sortieren nach:\n" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=ZAHL\n" "# Nachbearbeitung\n" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=ZEICHENKETTE\n" "# Voreinstellung für Gültigkeitsbereich neuer Kill-Einträge,\n" "# z.B. talk.*\n" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" "# Kill verfällt automatisch\n" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" "# Kill beachtet Gross/Kleinschreibung\n" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=ZAHL\n" "# Killen nach:\n" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=Subject (Gross/Kleinschreibung beachten), 1=Subject (G/K ignorieren)\n" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=From (G/K beachten), 3=From (G/K ignorieren)\n" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "# 4=Message-ID, 5=Zeilen\n" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=ZEICHENKETTE\n" "# Voreinstellung für Gültigkeitsbereich neuer Auswahlregeln (Hochscoren)\n" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" "# Regel verfällt automatisch\n" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" "# Regel beachtet Gross/Kleinschreibung\n" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" "# Auswählen (Hochscoren) nach:\n" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "# x_comment_to=ON/OFF\n" "# X-Comment-To:-Header einfügen.\n" "# (Nur sinnvoll in nach Fido Technology Network gegateten Gruppen.)\n" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "# fcc=ZEICHENKETTE\n" "# Datei in der eine Kopie der Mail abgelegt werden soll,# z.B: " "=mailbox\n" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" "# Automatische Umwandlung von TeX-Umlauten\n" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "# mime_forward=ON/OFF\n" "# Weitergeleitete Artikel als MIME-Anhang senden\n" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=Zeichensatz\n" "# Erlaubt sind folgende:" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=ZEICHENKETTE\n" "# Voreinstellung ist US-ASCII\n" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "#\n" "# Es empfiehlt sich, zuerst allgemein gültige und danach spezielle,\n" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# nur für bestimmte Newsgruppen gültige Einträge aufzuführen.\n" "#\n" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "# Zusätzliche Header einfügen\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "# in *sources* nur Nachbearbeitung mit shar\n" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "# in *binaries* Nachbearbeitung ohne TeX2ISO umwandlung,\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "# temporäre Dateien löschen und Followup-To: poster setzen\n" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(unbekannt)" @@ -704,7 +704,7 @@ msgstr "Erzeuge die Datei 'active' für g msgid "Creating newsrc file...\n" msgstr "Erzeuge newsrc Datei...\n" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Voreinstellung" @@ -1762,7 +1762,7 @@ msgstr "bewegt die gewählte Gruppe inner msgid "choose next group with unread news" msgstr "wählt die nächste Gruppe mit ungelesenen Artikeln" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "Beenden" @@ -2102,46 +2102,42 @@ msgid "Lines %s " msgstr "Zeilen %s " #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "Message-ID: Zeile " - -#: src/lang.c:479 msgid "Mail" msgstr "Maile" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "Mailbox " -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Mailt Artikel an [%.*s]> " -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "Maile Log-Datei an %s\n" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "Maile einen Fehlerbericht..." -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "Fehlerbericht an %s senden?" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "Gemailt" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "Senden der Mail an %s..." -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" @@ -2151,283 +2147,295 @@ msgstr "# [Mail/Speicher] active-Datei. "# Das 4. Feld ist das Basisverzeichnis (z.B. ~/Mail oder ~/News)\n" "#\n" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "%s als ungelesen markiert" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "%d von %d %s als gelesen markiert" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "Alle Artikel als gelesen markieren%s?" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "%s=markierte oder %s=aktuellen Artikel auf gelesen setzen. %s=Abbrechen: " -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "Die Gruppe %s als gelesen markieren?" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "Den Thread als gelesen markieren%s?" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "%s=markierte oder %s=aktuellen Artikel/Thread auf gelesen setzen. %" "s=Abbrechen: " -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "Übereinstimmende %s Gruppen..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=Wähle n; %s=n. ungel.; %s=Suche; %s=Filter" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=Autorsuche; %s=Catchup; %s=n. unten; %s=n. oben; %s=gelesen; %s=Thread anz." -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=n. oben; %s=n. unten; %s=BildAuf; %s=BildAb; %s=Anfang; %s=letzte Zeile" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=Suche vorwärts; %s=Suche rückwärts; %s=Beenden" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=Autorsuche; %s=Su. Inhalt; %s=Catchup; %s=Antw in NG; %s=gelesen" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "=Wähle n; %s=n. ungel.; %s,%s=Suche; %s=Catchup" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=n. unten; %s=n. oben; %s=Hilfe; %s=verschieben; %s=Ende; %s=Alle/Nur ungel." -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=Abo; %s=Abo n. Muster; %s=Abbestellen; %s=Abbest. n. Muster; %s=Alle/Nur " "abon." -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "=Wähle n; %s=n. ungel.; %s=Catchup; %s=Infozeile" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=Hilfe; %s=n. unten; %s=n. oben; %s=Ende; %s=tag; %s=ungelesen" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "--Mehr--" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "Verschiebe %s..." +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "Message-ID: & letzte Reference" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "Message-ID: Zeile " + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "Message-ID: & References: " + +#: src/lang.c:514 msgid ", name: " msgstr ", Name: " -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "Gehe zu Gruppe [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "Gruppen" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "Position %s in der Gruppenliste (1,2,..,$) [%d]> " -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "Gruppe" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "Erneut versuchen, die newsrc-Datei zu schreiben?" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "Warnung: Keine Newsgruppen in die newsrc geschrieben. Speicherabbruch." -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "newsrc-Datei erfolgreich geschrieben.\n" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "-- Nächste Antwort --" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "NNTP Anmeldepasswort für %s nicht gefunden" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "Nein" -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "*** Keine Artikel ***" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "Es wurden keine Artikel gepostet" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "*** Keine Kurzbeschreibung ***" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "Kein Dateiname" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "Keine Gruppe" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "*** Keine Newsgruppen ***" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "Keine Gruppen zum Lesen übrig" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "Keine letzte Nachricht" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "Keine EMail-Adresse" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "Keine Artikel zum Speichern markiert" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "Kein Treffer" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "Keine Gruppen mehr" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "Keine Newsgruppen" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "Kein nächster ungelesener Artikel" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "Keine vorherige Gruppe" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "Kein vorheriger ungelesener Artikel" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "Keine Antworten" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "Keine Antworten vorhanden im aktuellen Thread" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "Kein Suchmuster" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "Kein Subject" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s: Terminal muss Löschen bis zum Ende der Zeile (ce) unterstützen\n" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s: Terminal muss Löschen bis zum Ende des Schirmes unterstützen (cd)\n" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminal muss Schirmlöschen (cl) unterstützen\n" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Terminal muss Cursor-Bewegungen unterstützen (cm)\n" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s: TERM-Variable muss gesetzt sein, um das Terminal richtig anzusteuern\n" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "Kein Programm für %s/%s gefunden\n" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "Newsgruppe existiert nicht auf diesem Server" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "Gruppe %s nicht in der Active-Datei gefunden" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "c=erzeuge, a=alternativer Name, d=voreingestellte .newsrc, q=beende tin: " -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "a=alternativer Name, d=voreingestellte .newsrc, q=beende tin: " -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2454,40 +2462,40 @@ msgstr "# NNTP-Server -> newsrc Übersetz "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "Nur" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Option nicht vorhanden. Neu kompilieren mit %s." -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "Optionsmenü" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Fehler im regulären Ausdruck: %s an Pos. %d '%s'" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Fehler im regulären Ausdruck: Interner Fehler %d des pcre" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Fehler im regulären Ausdruck: pcre interner Fehler %s" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "Schreibe eine Antwort..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" @@ -2495,276 +2503,280 @@ msgstr "Ein Fehler trat beim Posten des "ein temporäres Problem ist, das später nicht mehr vorhanden ist, können Sie\n" "den Artikel zurückstellen und später mit ^O wieder hervorholen.\n" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "Übersicht der geposteten Artikel" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "In Newsgruppe(n) [%s] posten> " -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "-- Nachbearbeitung gestartet --" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "-- Nachbearbeitung beendet --" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "Wähle Subject [%s]> " -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# Zusammenfassung der gemailten/geposteten Artikel mit 'W' in tin.\n" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "Poste Artikel..." -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "Zurückgelegten Artikel [%%s]posten? (%s/%s/%s/%s/%s): " -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "Wichtig/Hot %s" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "%s markiert" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "%s Markierung entfernt" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "Bearbeite zum Löschen markierte EMails." -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "Bearbeite zum Löschen markierte gespeicherte Artikel." -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "Followup-To akzeptieren? %s=posten, %s=ignorieren, %s=Ende: " -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "Mail unverändert, Absenden abbrechen?" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Wollen Sie die zurückgestellten Artikel sehen (%d)?" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "Artikel schnell (laut Voreinstellungen) killen?" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "Filterregel (hochscoren) (laut Voreinstellungen) hinzufügen?" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "Möchten Sie das Programm wirklich beenden?" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=cancel-Nachricht editieren, %s=Ende, %s=löschen [%%s]: " -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "Es befinden sich markierte Artikel in der Gruppe, trotzdem beenden?" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=zurücklegen: " -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=Abbrechen %s=Editieren %s=Kill-Filter speichern: " -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=Abbrechen %s=Editieren %s=Filter (hot) speichern: " -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "Wirklich ohne Speichern der Konfiguration beenden?" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Ungültige Bereichsangabe - Gültig wäre '0-9.$' z.B. 1-$" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "Wollen Sie diese Operation abbrechen?" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "Wollen Sie tin augenblicklich verlassen?" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "Lese Antwort> " -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "Lesen ('q' zum Beenden)..." -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "Lese %sArtikel..." -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "Lese %sAttribute-Datei...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "Lese %sKonfigurations-Datei...\n" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "Lese Filter-Datei...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "Lese %s Gruppen..." -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "Lese Eingabe-History...\n" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "Lese Tastaturbelegungen...\n" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "Lese Gruppen aus dem Active... " -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "Lese Gruppen aus der newsrc-Datei... " -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "Lese Newsgroups-Datei... " -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "Lese newsrc-Datei..." -#: src/lang.c:620 +#: src/lang.c:621 +msgid "References: line " +msgstr "References: Zeile " + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "(noch %d:%02d benötigt)" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "Nicht vorhandene Gruppe %s entfernt." -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "Fehler: Benenne %s in %s" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "Mailantwort an Autor..." -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "Reposte" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "Wiederholtes posten des Artikels..." -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Wiederholtes posten de(s|r) Artikel(s) in [%s]> " -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "newsrc zurücksetzen?" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "Antworten werden in folgende Gruppen gepostet" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Antwort per Mail wurde angefordert. %s=Mail, %s=post, %s=beenden: " -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "Antw. %4d von %4d" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "Drücken Sie um fortzufahren..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "Wähle From [%s] (j/n): " -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "Wähle Zeilen: (num): " -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "Filter Menü (Bewertung/Score erhöhen)" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "Wähle Msg-Id [%s] (v/l/n/n): " -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "Wähle Muster : " -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "Wähle Subject [%s] (j/n): " -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "Wähle Textmuster : " -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "Wähle Zeit in Tagen : " -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2784,223 +2796,223 @@ msgstr "# %s Server Konfigurationsdatei\ "############################################################################\n" "\n" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "Zeige nur Gruppen mit ungelesenen Artikeln" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "Subject: Z. (Groß-Kl. ign.) " -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "Subject: Z. (Groß-Kl. beachten) " -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "Speichern" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "'%s' (%s/%s) speichern?" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "Zuerst Konfiguration speichern und danach fortfahren?" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "Name der zu speichernden Datei> " -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "Gespeichert" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d ungelesene (%4d 'hot') %s in %s\n" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "%s gespeichert...\n" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "Nichts gespeichert" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s aus %d %s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s nach %s%s gespeichert --" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s gespeichert als %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "Speichere..." -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Initialisierung des Bildschirms fehlgeschlagen" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "%s: Anzeige ist zu klein\n" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "Anzeige zu klein, %s beendet sich\n" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "Suche rückwärts [%s]> " -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "Durchsuche Artikelinhalt [%s]> " -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "Suche vorwärts [%s]> " -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "Suche..." -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Suche Artikel %d von %d ('q' zum abbrechen)..." -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "Wähle Artikel> " -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Wähle Optionsnummer, oder benutze die Cursor Tasten und . 'q' zum beenden." -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "Wähle Gruppe> " -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Nenne das Auswahlmuster [%s]> " -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "Wähle thread > " -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s %s %s (\"%s\") [%s]: schicken Sie einen DETAILLIERTEN Fehlerbericht an %s\n" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "Die 'active' Datei des Servers" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Kann die Newsgruppe nicht öffnen. Sie muss erst abonniert werden..." -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "Starte: (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "Zeige Thread (%d von %d)" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "Thread (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "Wildcardmuster für zu abonnierende Gruppen> " -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "%d Gruppen sind abonniert" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "%s wurde abonniert" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "Abonniere... " -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "Artikel erneut posten oder überschreiben [%%s]? (%s/%s/%s): " -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Supersede (überschreibe) Artikel in den Gruppen [%s]> " -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "Überschreibe Artikel ..." -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "Angehalten. Geben Sie 'fg' ein um %s wieder zu starten\n" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "%d Tage" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "TeX " -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "# Voreingestellte Aktion/zeige Zeichenkette\n" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -3016,261 +3028,261 @@ msgstr "# Voreinstellung für schnellen ( "# case=ON/OFF ON=Filter case sensitive OFF=ignoriere case\n" "# expire=ON/OFF ON=Verfallen nach default_filter_days OFF=verfällt nie\n" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "# Falls ON anzeige des Subject oder des Gruppennamens in der letzten Zeile.\n" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# Benutzte Host- & Zeit-Info um neue Gruppen zu finden (nicht ändern)\n" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "Es gibt keine neuen Artikel\n" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "Thread" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "Thread Level Kommandos" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "Thread nicht mehr ausgewählt" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "Thread ausgewählt" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "Threads" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "Thread-Bereich" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "Thread" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "Thread %4s v. %4s" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "Sortiere Artikel..." -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "Wort-Hervorhebung: %s" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "ROT13-Kodierung (de)aktiviert" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "Deutsche TeX-Dekodierung: %s" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "Tabulatorweite zu %d gewechselt" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d Versuche %s zu dotlocken" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "%d Versuche %s zu locken" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr " h=Hilfe\n" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "Unbegrenzt" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "Wildcardmuster für abzubestellende Gruppen> " -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "Fehler beim Dekodieren von %s : %s" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "Kein Ende." -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "%s erfolgreich dekodiert." -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[-- %s/%s, %suukodierte Datei, %d Zeilen, Name: %s --]\n" "\n" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "ungelesen " -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "%d Gruppen abbestellt" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "%s wurde abbestellt" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "Abbestellen... " -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "Aktuelle Sortierung der Artikel aufheben..." -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "Aktualisiert" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "Aktualisiere" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "Öffne %s\n" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "Keine weiteren URLs im Artikel" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "MIME-Anzeigeprogramm für diese Nachricht benutzen?" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr " -c Markiere Artikel gelesen in den abonnierten Gruppen (Batch-Modus)" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr " -Z Rückgabewert zeigt, ob ungelesene Artikel vorliegen (Batch-Modus)" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr " -q Überprüfe nicht auf neue Newsgruppen" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr " -X Speicher keine Dateien beim Beenden" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr " -d Zeige keine Newsgruppenbeschreibungen" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr " -G limit Hole nur 'limit' Artikel pro Newsgruppe" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr " -H Hilfe und Informationen über %s" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr " -h Diese Hilfeseite" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I Verz. Verzeichnis für Artikel-Index-Datei [Standard=%s]" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr " -u Erneuere Index-Dateien (Batch-Modus)" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m Verz. Mailbox-Verzeichnis [Standard=%s]" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Schicken Sie Fehlerberichte/Kommentare an %s" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr " -N Maile neue Artikel an sich selbst (Batch-Modus)" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr " -M user Maile neue News-Artikel an 'user' (Batch-Modus)" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f Datei 'Datei' als .newsrc-Datei nutzen [Standard=%s]" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr " -x Posten nicht erlaubt Modus" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr " -w Postet einen Artikel und beendet tin" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr " -o Postet alle zurückgelegten Artikel und beendet tin" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr " -r Lese Artikel vom Standard-NNTP-Server" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr " -R Lese Artikel, die durch -S gespeichert wurden" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s Verz. Verzeichnis zum News-Speichern [Standard=%s]" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr " -S Speichere Artikel für das spätere Lesen (Batch-Modus)" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr " -z Starte, wenn ungelesene Artikel vorliegen" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3279,37 +3291,42 @@ msgstr "Ein Usenet-Client.\n" "\n" "Syntax: %s [Optionen] [Newsgruppe[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr " -v Ausführliche Ausgabe für Batch-Modus-Optionen" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr " -V Gebe Versions- und Datumsinformationen aus" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s ist nur sinnvoll ohne Batchmodeoperationen\n" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s ist nur sinnvoll für Batchmodeoperationen\n" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "Unsinninge Kombination von %s und %s. Ignoriere %s.\n" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d ist außerhalb der Grenzen (0 - %d). Zurücksetzen auf 0" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "'%s' (%s/%s) anzeigen?" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3318,26 +3335,26 @@ msgstr "\n" "Warnung: Artikel überschreitet %d Spalten. Zeile %d ist die erste lange:\n" "%-100s\n" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Warnung: Artikel wurde im Editor nicht verändert\n" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Warnung: \"Subject:\" enthält nur Leerzeichen.\n" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "\n" "Warnung: \"Subject:\" beginnt mit \"Re: \", aber es gibt keine \"References:" "\".\n" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3345,7 +3362,7 @@ msgstr "\n" "Warnung: Artikel hat \"References:\" aber \"Subject:\" beginnt nicht\n" " mit \"Re: \" and enthält auch kein \"(was:\".\n" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3365,7 +3382,7 @@ msgstr "Sorgfältig lesen!\n" "Das ist der Artikel, den Sie canceln (löschen) wollen:\n" "\n" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3377,7 +3394,7 @@ msgstr "\n" " Artikel zu übertragen. Falls durch diesen inews eine Signatur\n" " angehängt wird, so kann diese nicht korrekt kodiert werden.\n" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3390,7 +3407,7 @@ msgstr "\n" "Einige Einstellungen in Ihrem %s-File haben sich geändert!\n" "Lesen Sie \"WHATSNEW\", usw....\n" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3402,7 +3419,7 @@ msgstr "\n" "Evtl. werden Einstellungen in Ihrem %s-File\n" "nicht erkannt oder ändern sich!\n" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3415,19 +3432,19 @@ msgstr "Warnung: tin hat weniger Gruppen "währenddessen abbestellt haben, ist ein Fehler aufgetreten und Sie sollten\n" "Ihre %s wiederherstellen, bevor Sie tin nochmal starten!\n" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "\n" "Warnung: Es gibt %d '-- \\n' Zeilen. Das könnte einige Leute verwirren.\n" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Warnung: Nur %d von %d Artikeln gespeichert" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3441,48 +3458,48 @@ msgstr "\n" " nützlichen Informationen enthalten, sollten sie so kurz wie möglich\n" " gehalten werden.\n" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "Warnung: E-Mailadr. evtl. verfälscht (Spamfalle). %s=weiter, %s=Abbruch? " -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "\n" "Warnung: Signaturen sollten mit '-- \\n' und nicht mit '--\\n' beginnen.\n" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "Schreibe Datei mit den Eigenschaften der Newsgruppen..." -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "%d Antworten" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "%d %s hinzugefügt" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "Keine nicht abonnierte Gruppen gefunden" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "Zeige nur abonnierte Gruppen" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "Ja " -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr " Sie haben Mail\n" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3501,11 +3518,11 @@ msgstr "\n" " entfernen oder MM_NETWORK_CHARSET im M)neu auf einen\n" " passenderen Wert setzen.\n" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D Debug-Modus 1=NNTP 2=ALLES" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3531,11 +3548,11 @@ msgstr "Sorgfältig lesen!\n" "Dies ist der Artikel, den Sie canceln (löschen) wollen:\n" "\n" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "Farben ein/aus" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3579,360 +3596,360 @@ msgstr "# Farbeinstellungen\n" "# 15 = hellweiß\n" "\n" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr " -a Farbe ein- oder ausschalten" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Fehler: Followup-To auf mehr als eine Newsgruppe gesetzt!\n" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Fehler: Crossposting in %d Newsgruppen und kein Followup-To gesetzt!\n" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "Fehler: \"%s\" ist keine gültige Newsgruppe!\n" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Warnung: Followup-To in mehr als eine Newsgruppe gesetzt!\n" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Warnung: Crossposting in %d Newsgruppen und kein Followup-To gesetzt!\n" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "\n" "Warnung: \"%s\" ist nicht in Ihrer newsrc, sie könnte ungültig sein!\n" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "\n" "Warnung: \"%s\" ist keine gültige Newsgruppe auf diesem Server!\n" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "%d Dateien aus %d Artikeln erfolgreich geschrieben. %d %s trat(en) auf." -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "Teile fehlen." -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "Kein Anfang." -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "Keine Daten." -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "Unbekannter Fehler." -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tPrüfsumme für %s (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "Lese EMail-Active-Datei... " -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "Lese Mailgruppen-Datei... " -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "wendet PGP auf den Artikel an" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "Schlüssel dem Öffentlichen Schlüsselring hinzufügen?" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=verschlüsseln, %s=signieren, %s=beides, %s=Ende: " -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=signiere, %s=signiere & füge öffentl. Schlüssel hinzu, %s=Ende: " -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP Wurde nicht konfiguriert (kann %s nicht öffnen)" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "Artikel ist nicht signiert; keine öffentlichen Schlüssel gefunden" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=pgp, %s=Menü, %s=posten, %" "s=zurücklegen: " -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=pgp, %s=verschicken [%%s]: " -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=pgp, %s=Menü, %s=posten, %s=zurücklegen " "[%%s]: " -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=Menü, %s=posten, %s=zurücklegen: " -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=verschicken [%%s]: " -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=Menü, %s=posten, %s=zurücklegen [%%s]: " -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=Menü, %s=posten, %s=zurücklegen: " -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=verschicken [%%s]: " -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=Menü, %s=post, %s=Zurückl. [%%s]: " -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=Menü, %s=posten, %s=zurücklegen: " -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=verschicken [%%s]: " -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Ende, %s=bearbeiten, %s=Menü, %s=posten, %s=zurücklegen [%%s]: " -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "Setze cache_overview_files um das lesen zu beschleunigen.\n" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "Tin wird lokale index files benutzen.\n" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "Kann den Namen des NNTP Servers nicht finden" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "Verbinde mit %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "Trenne Verbindung zum Server...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Falsche Newsgruppe in Antwort auf GROUP-Befehl, %s statt %s" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "Konnte nicht zum NNTP Server %s verbinden. Beende..." -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "205 Schließe Verbindung" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "Ihr Server unterstützt kein NNTP XOVER oder OVER Kommando.\n" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "Die Verbindung zum Newsserver wurde unterbrochen. Wieder verbinden?" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "Schreiben Sie den Servernamen in die Datei %s,\n" "oder setzen Sie die Umgebungsvariable NNTPSERVER" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr " -A Erzwinge Anmeldung bei Verbindung" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv Lese Artikel vom NNTP-Server 'serv' [Standard=%s]" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port Benutze 'port' als NNTP-Port [Standard=%d]" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr " -Q Schnellstart. Das Selbe wie -nqd" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l Benutze nur das LIST anstelle vom GROUP-Kommando (-n)" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n Lese nur Gruppen aus der .newsrc-Datei vom NNTP-Server" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Unbekannter Service.\n" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "\n" "Socket oder Verbindungsproblem\n" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Verbindung mit %s: " -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "Gebe auf...\n" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "Ihr Server hat kein Xref: in seiner XOVER-Information.\n" "Tin versucht XHDR XREF zu benutzen (verlangsamt den Prozess etwas).\n" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "Ihr Server hat kein Xref: in seiner XOVER-Information.\n" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "Kann %s nicht öffnen. Probieren Sie %s -r um via NNTP zu lesen.\n" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr " -Q Schnellstart. Das Selbe wie -qd" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr " -l Nur active File lesen ohne den Spool zu durchsuchen (-n) Kommando" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n Lese nur Gruppen aus der .newsrc-Datei aus dem lokalen Spool" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Ihr Server hat kein Xref: in seinen NOV-Dateien.\n" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "Fehler beim Posten mit externem inews, verwende eingebautes?" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "Das hat funktioniert. In Zukunft immer eingebautes inews verwenden?" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "%d %s gedruckt" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "druckt Artikel/Thread/hervorgehobene/Muster/markierten" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "Drucke" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "Drucke..." -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "pipet Artikel/thread hervorgehoben/Muster/markierten Artikel" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "Kein Kommando" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "Pipe" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Pipen in Kommando [%.*s]> " -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "Pipen..." -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "Pipen nicht aktiviert." -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3945,7 +3962,7 @@ msgstr "\n" " vom Inhalt trennt. Benutzen Sie ein ',' um mehrere Newsgruppen\n" " anzugeben\n" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3956,7 +3973,7 @@ msgstr "\n" " Da diese Zeile keinen leeren Raum enthalten darf, ist dies nicht\n" " erlaubt. Bitte schreiben Sie alle Newsgruppen in eine Zeile\n" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3967,7 +3984,7 @@ msgstr "\n" " Da diese Zeile keinen leeren Raum enthalten darf, ist dies nicht\n" " erlaubt. Bitte schreiben Sie alle Newsgruppen in eine Zeile.\n" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" @@ -3975,7 +3992,7 @@ msgstr "\n" "Warnung: Die \"%s:\" Zeile enthält Leerzeichen die entfernt\n" " werden sollten.\n" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -4006,504 +4023,527 @@ msgstr "\n" " Artikel nicht sorgfältig formatieren, ist es sehr wahrscheinlich, dass er\n" " von vielen gar nicht gelesen wird.\n" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "Ausgang zur Shell" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "Shellkommando (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "Geben Sie ein Shellkommando ein [%s]> " -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s: Kann den Wert für TERM nicht finden\n" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Gruppe %.*s ('q' zum beenden)..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "Gruppe %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "Server nicht erreichbar\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=Pipe; %s=Mail; %s=Drucken; %s=Ende; %s=Alle/Nur ungel.; %s=Speich.; %" "s=tag; %s=Posten" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Pipe; %s=Mail; %s=Drucken; %s=Ende; %s=Antw. Mail; %s=Speich.; %s=tag; %" "s=Posten" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Mail; %s=Drucken; %s=Ende; %s=Alle/Nur ungel.; %s=Speich.; %s=tag; %" "s=Posten" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Mail; %s=Drucken; %s=Ende; %s=Antw. Mail; %s=Speich.; %s=tag; %s=Posten" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Pipe; %s=Mail; %s=Ende; %s=Alle/Nur ungel.; %s=Speich.; %s=tag; %s=Posten" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Pipe; %s=Mail; %s=Ende; %s=Antw. Mail; %s=Speich.; %s=tag; %s=Posten" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Mail; %s=Ende; %s=Alle/Nur ungel.; %s=Speich.; %s=tag; %s=Posten" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Mail; %s=Ende; %s=Antw. Mail; %s=Speich.; %s=tag; %s=Posten" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "Terminal unterstützt keine Farben" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "Versuche %s" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "Nichts" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "Subject" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "References" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "Beides: Subject und References" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "Mehrteilige Artikel (Subject)" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "Prozentualer Treffer" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "Nein" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "Ja" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "Alle ausblenden" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "Adresse" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "Voller Name" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "Adresse und Name" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "Höchster" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "Summe" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "Durchschnitt" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "Zeilen" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "Bewertung" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "Zeilen und Bewertung" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "Schwarz" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "Rot" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "Grün" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "Braun" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "Blau" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "Rosa" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "Cyan" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "Weiß" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Grau" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "Helles Rot" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "Helles Grün" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "Gelb" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "Helles Blau" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "Helles Rosa" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "Helles Cyan" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "Helles Weiß" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "Nichts" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "Markierung" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "Leerzeichen" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "Normal" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "Beste Hervorhebung" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "Unterstreichen" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "Invers" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "Blinkend" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "Halbe Helligkeit" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "Fett" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "Nichts" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "Kommandos" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "X-Befehl" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "Kommandos & Ende" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "Kommandos & X-Befehl" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "Ende & X-Befehl" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "Kmndos & Ende & X-Befehl" -#: src/lang.c:1222 +# TRANSLATION MISSING +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "Shellarchiv" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "Subject: (Absteigend)" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "Subject: (Aufsteigend)" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "From: (Absteigend)" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "From: (Aufsteigend)" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "Date: (Absteigend)" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "Date: (Aufsteigend)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "Bewertung (Absteigend)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "Bewertung (Aufsteigend)" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "Lines: (Absteigend)" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "Lines: (Aufsteigend)" -#: src/lang.c:1248 +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "Datum des letzten Artikels (Absteigend)" + +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "Datum des letzten Artikels (Aufsteigend)" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "Immer behalten" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "Immer entfernen" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "Mit D in der Anzeige markiert" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "Killt nur ungelesene Artikel" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "Killt alle Artikel, markiert mit K" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "Killt alle Artikel, zeigt sie nie" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "Nichts besonderes" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "Zitatzeichen zusammenfassen" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "Signaturen zitieren" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "Zitatz. kürzen, Signat. zitieren" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "Leerzeilen zitieren" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "Zitatz. kürzen, Leerzeilen zit." -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "Signat. und Leerzeilen zitieren" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "Zitatz. kürzen, Sign & Leerz. zit." -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "nein" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "mit Header" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "ohne Header" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "NFKC" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "NFKD" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "NFC" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "NFD" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "Darstellungseinstellungen" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "Farbeinstellungen" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "Artikel-Begrenzungseinstellungen" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "Versandeinstellungen für Mail und News" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "Speicher- und Druckereinstellungen" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "Experteneinstellungen" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "Filtereinstellungen" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr " schaltet um, setzt, bricht ab." -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "Zeigt Minimenü & Posting etiquette" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "# Falls ON wird ein kleines Menü mit nützlichen Kommandos in jedem Level\n" "# angezeigt. Nach dem Erstellen eines Artikels wird die etiquette angezeigt\n" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Zeige Kurzbeschreibung für Gruppe. wechselt & setzt." -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "Zeige Beschreibung der Newsgruppen" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "# Falls ON wird die Newsgruppenbeschreibung im Gruppenauswahlmenü\n" "# nach dem Namen angezeigt\n" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Zeigt Subject & From (Autor) Felder im Gruppenmenü. wechselt & " "setzt." -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "Im Gruppenmenü, zeige Autor an nach" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4517,31 +4557,31 @@ msgstr "# Anzeige des 'From:' Felds\n" "# * 2 = Voller Name\n" "# 3 = beides (Adresse und Name)\n" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Zeige -> oder Hervorhebung für Auswahl. wechselt & setzt." -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "Zeige -> anstatt einer Markierung" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "# Falls ON benutze -> andernfalls benutze eine Markierung zur Auswahl\n" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "Inverse Darstellung für die Header" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "# Falls ON nutze inverse Darstellung für Header bei verschiedenen Ebenen\n" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "Threade Artikel anhand" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4559,16 +4599,16 @@ msgstr "# Gruppiere Artikel nach\n" "# 4 = Mehrteilige Artikel\n" "# 5 = prozentualer Subject vergleich\n" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "Prozent des Subject das gleich sein muß. setzt." -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "Prozentualer Subject vergleich" # TRANSLATION MISSING -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4581,11 +4621,11 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "Bewertung eines Threads" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4597,15 +4637,15 @@ msgstr "# Bewertung des Threads\n" "# 1 = Summe\n" "# 2 = Durchschnitt\n" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Sortiere Artikel nach Subject, From, Datum oder Bewertung." -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "Sortiere Artikel nach" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4633,63 +4673,67 @@ msgstr "# Sortiere Artikel nach\n" "# 9 = Lines absteigend\n" "# 10 = Lines aufsteigend\n" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Threads nach Bewertung (Score) ordnen? wechselt & setzt." -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "Sortiere Threads nach" -#: src/lang.c:1466 +#: src/lang.c:1480 msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "# Ordne Threads nach\n" "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n" "# 0 = nichts \n" "# * 1 = Bewertung absteigend\n" "# 2 = Bewertung aufsteigend\n" + "# 3 = Datum des letzten Artikels (absteigend)\n" + "# 4 = Datum des letzten Artikels (aufsteigend)\n" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Setze Cursor an ersten/letzten ungel. Artikel. wechselt & setzt." -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "Setze Cursor auf ersten ungel. Art." -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# Falls ON setze Cursor auf ersten ungelesenen Artikel, sonst auf letzten\n" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Zeige alle oder nur ungelesene Artikel. wechselt & setzt." -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "Zeige nur ungelesene Artikel" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "# Falls ON zeige nur neue/ungelesene Artikel, sonst alle.\n" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "Zeige nur Gruppen mit ungel. Art." -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "# Falls ON zeige nur abonnierte Gruppen mit ungelesen Artikeln.\n" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "Filter (kill) anwenden auf" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4701,198 +4745,178 @@ msgstr "# Filter (kill) anwenden auf\n" "# 1 = Filtert alle Artikel und markiert sie mit K\n" "# 2 = Filtert alle Artikel und zeigt gekillte niemals an\n" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "Tab zeigt nächsten ungelesenen Art." - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "# Falls ON wechselt TAB sofort zum nächsten ungelesenen Artikel\n" - -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "Weiterscrollen mit Leertaste am Artikelende wechselt zum nächsten ungel. " - "Artikel." - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "Leertaste zeigt nächsten unge. Art." +#: src/lang.c:1519 +msgid "Go to the next unread article with" +msgstr "Zum nächsten ungelesenen Artikel springen mit" -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "# Falls ON wechselt die Leertaste zum nächsten ungelesenen Artikel, wenn\n" - "# das Ende des Artikels erreicht wird (rn-Stil)\n" - -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "Weiterscrollen mit BildAb am Artikelende wechselt zum nächsten ungel. Artikel." - -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "PgDn zeigt nächst. ungelesenen Art." - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "# Falls ON wechselt Bildrunter oder Cursorrunter zum nächsten ungelesenen\n" - "# Artikel, wenn das Artikelende erreicht wurde\n" +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" +msgstr "# Taste(n) um zum nächsten ungelesenen Artikel zu springen.\n" + "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n" + "# 0 = nichts\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN oder TAB\n" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "Zeige Thread mit rechter Pfeilt. an" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "# Falls ON: Thread beim Betreten mit der rechten Cursortaste automatisch\n" "# anzeigen?\n" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Definiere Zeichen für gelöschte Artikel. setzt, bricht ab." -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "Zeichen für gelöschte Artikel" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für einen Artikel, der gelöscht wurde (Voreinstellung 'D')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Definiere Zeichen, das Artikel im Bereich anzeigt. setzt, bricht ab." -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "Zeichen für Artikel im Bereich" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für Artikel die im Bereich sind (Voreinstellung '#')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Definiere Zeichen für wiederkehrende Art. setzt. bricht ab." -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "Zeichen für wiederkehrende Artikel" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "# Zeichen, dass ein Artikel wiederkommen wird (Voreinstellung '-')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Zeichen für Artikel mit Markierung wichtig/'hot' setzt, bricht ab." -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "Zeichen für wichtige Artikel" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für Artikel mit Markierung wichtig/'hot' (Voreinstellung '*')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Definiere Zeichen für aktuelle Artikel. setzt, bricht ab." -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "Zeichen für aktuelle Artikel" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für einen aktuellen Artikel (Voreinstellung ist 'o')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Zeichen für ungelesene Artikel. setzt, bricht ab." -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "Zeichen für ungelesene Artikel" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für ungelesene Artikel (Voreinstellung '+')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "Zeichen für gelesene Artikel. setzt, bricht ab." -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "Zeichen für gelesene Artikel" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "# Zeichen für gelesene Artikel (Voreinstellung ' ')\n" "# _ wird in ' ' umgewandelt\n" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Zeichen für gekillte Artikel. setzt, bricht ab." -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "Zeichen für gekillte Artikel" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Zeichen für gekillte Artikel (Voreinstellung 'K')\n" "# _ wird in ' ' umgewandelt, kill_level muss passend gesetzt sein.\n" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Zeichen für gelesene wichtige/'hot' Artikel. setzt, bricht ab." -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "Zeichen für gelesene wichtige Art." -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Zeichen für bereits gelesene Artikel mit Markierung wichtig/'hot'\n" "# (Voreinstellung ':')\n" "# _ wird in ' ' umgewandelt, kill_level muss passend gesetzt sein.\n" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Maximale Länge des angezeigten Newsgruppennamens. setzt." -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "Max. Länge angezeigter Gruppennamen" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Maximale Länge der angezeigten Newsgruppennamen\n" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "Zeige Zeilenz./Bewert. in Übersicht" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4907,17 +4931,17 @@ msgstr "# Welche weiteren Informationen "# 2 = Bewertung\n" "# 3 = Zeilenzahl & Bewertung\n" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 = seitenweise, -1 = zeige zusätzlich letzte Zeile der vorigen Seite, -2 = " "halbe Seite" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "Blättere Artikel um ... Zeilen" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4934,27 +4958,27 @@ msgstr "# Anzahl der Zeilen, die Cursor- "# * 1 = zeilenweise\n" "# 2 oder mehr = um 2 oder mehr Zeilen\n" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "Zeige Signaturen an. wechselt & setzt." -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "Zeige Signaturen an" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "# Falls OFF zeige keine Signaturen an\n" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Uu-kodierte Teile als Attachment anzeigen. wechselt & setzt." -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "Zeige uue-Teile als Attachment" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4969,29 +4993,29 @@ msgstr "# Behandlung von uuencodeten Dat "# ähnlich der von MIME Anhängen\n" "# 2 = Einzeilige Zusammenfassung auch für unvollständige Daten\n" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "TeX german.sty Umlautkodierung auswerten. wechselt & setzt." -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "Wandle TeX-Umlaute automatisch um" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "# Wenn ON dekodiere laut german.sty (TeX) kodierte Umlaute und stelle\n" "# \"a als ä, usw. dar\n" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "Durch Leerzeichen getrennte Liste der Header-Felder" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "Zeige diese Header-Felder (oder *)" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -5005,11 +5029,11 @@ msgstr "# Welche Header wollen Sie sehen "# Leerzeichen getrennte Werte angeben. Wenn Sie hier nichts definieren\n" "# wird diese Option deaktiviert.\n" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "Zeige folgende Header nicht an" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -5026,27 +5050,27 @@ msgstr "# Genau das gleiche wie 'news_he "# news_headers_to_not_display=X-Alan X-Pape\n" "# Wenn Sie hier nichts angeben, wird diese Option deaktiviert.\n" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "Automatische Bearbeitung von Art. mit multipart/alternative-Teilen aktivieren?" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "Übersp. multipart/alternative-Teile" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "# Falls ON entsorge multipart/alternative Teile des Artikels automatisch\n" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "Regulärer Ausdruck für Zeilen, die mit col_quote dargestellt werden." -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "Regulärer Ausd. für zit. Zeilen" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5055,15 +5079,15 @@ msgstr "# Ein regulärer Ausdruck, den ti "# Farbe angezeigt, die in col_quote definiert sind.\n" "# Wenn Sie hier nichts angeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "Regulärer Ausdruck für Zeilen, die mit col_quote2 dargestellt werden." -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "Reg. Ausd. für zweifach zitierte Z." -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5072,15 +5096,15 @@ msgstr "# Ein regulärer Ausdruck, den ti "# Farbe dargestellt, die in col_quote2 definiert ist.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "Regulärer Ausdruck für Zeilen, die mit col_quote3 dargestellt werden." -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "Reg. Ausd. für >=3-fach zitierte Z." -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5089,15 +5113,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# dargestellt, die in col_quote3 definiert sind.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "Regulärer Ausdruck für Zeilen, die mit col_markslashes dargestellt werden." -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "Reg. für /Schrägst./ Hervorhebungen" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5105,15 +5129,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '/' in col_markslashes angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "Regulärer Ausdruck für Zeilen, die mit col_markstars dargestellt werden." -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "Regu. A. für *Stern* Hervorhebungen" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5121,15 +5145,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '*' in col_markstars angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "Regulärer Ausdruck für Zeilen, die mit col_markstroke dargestellt werden." -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "Reg. für -Durchstr.- Hervorhebungen" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5137,15 +5161,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '-' in col_markstroke angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "Regulärer Ausdruck für Zeilen, die mit col_markdash dargestellt werden." -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "Reg. für _Unterstr._ Hervorhebungen" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5153,44 +5177,72 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '_' in col_markdash angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "Reg. Ausd., um Teile im Subjectanfang zu entfernen. '|' trennt die Ausd.." -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "Reg. Ausd. für den Subjectanfang" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "# Ein regulärer Ausdruck, mit dem tin Worte im Anfang des Subjects findet,\n" "# die dann entfernt werden.\n" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "Reg. Ausd., um Teile am Subjectanfang zu entfernen. '|' trennt die Ausd.." -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "Reg. Ausd. für das Subjectende" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "# Ein regulärer Ausdruck, der beim Antworten zum Abschneiden von\n" "# unerwünschten Teilen am Ende des Subjects verwendet wird.\n" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "Reg. Ausd., um den Beginn eines wortgetreu wiederzugebenden Absatz zu finden." + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "Reg. Ausd. für den Anfang eines wortgetreu wiederzugebenden Absatzes" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "# Ein regulärer Ausdruck, der den Beginn eines wortgetreu wiederzugebenden\n" + "# Absatzes findet.\n" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "Reg. Ausd., um das Ende eines wortgetreu wiederzugebenden Absatz zu finden." + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "Reg. Ausd. für das Ende eines wortgetreu wiederzugebenden Absatzes" + +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "# Ein regulärer Ausdruck, der das Ende eines wortgetreu wiederzugebenden\n" + "# Absatzes findet.\n" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "Name und Optionen für ext. MIME-Viewer, --internal für eingebaute Version" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "MIME-Viewer" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" @@ -5199,51 +5251,51 @@ msgstr "# Falls --internal wird der eing "# nicht Text teilen benutzt. Andernfalls das angegebene Programm\n" "# (z.B. metamail). Keine Angabe schaltet die automatische Anzeige aus.\n" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "Start des MIME-Viewers bestätigen" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "Start des MIME-Viewers bestätigen" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "# Falls ON fragt tin nach, bevor metamail zum Anzeigen von MIME Artikeln\n" "# benutzt wird. Das passiert nur, wenn auch metamail_prog gesetzt ist.\n" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Beim Beenden anbieten, alle betretenen Gruppen als gelesen zu markieren?" -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "Aufholen der Gruppen beim Beenden" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "# Falls ON: Beim Beenden von tin anbieten, alle betretenen Gruppen\n" "# als gelesen zu markieren\n" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "Catchup der Gruppe mit l. Cursor" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "# Falls ON: Aufholen (als gelesen markieren) der Gruppe/des Threads\n" "# beim Verlassen mit der linken Cursortaste\n" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "Catchup mit der linken Cursort." -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "Bestätigung erforderlich für" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "# Welche Operationen müssen explizit bestätigt werden.\n" "# Kommandos, die im Manual mit [after confirmation] markiert sind,\n" @@ -5251,79 +5303,79 @@ msgstr "# Welche Operationen müssen expl "# gelesen (siehe 'X' Befehl im Manual).\n" # TRANSLATION TOO LONG -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "'Art. gelesen markieren' ignoriert Markierte" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "# Falls ON wird mit der Funktion 'Artikel als gelesen markieren' nur\n" "# der jeweilige Artikel markiert.\n" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "Öffne URLs mit ... setzt, bricht ab." -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "Öffne URLs mit ..." -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "# Programm zum Öffnen von URLs, die jeweilige URL wird hinten angehängt.\n" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "Maus in xterm nutzen" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "# Falls ON wird die Maustastenunterstützung für xterm aktiviert\n" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "Scrollt. vom Nummernblock nutzen" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "# Falls ON werden die Scrolltasten genutzt (Terminalabhängig)\n" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "Maximale Anzahl der zu holenden Artikel eingeben. setzt." -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "Anzahl der zu holenden Artikel" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "# Anzahl der zu holenden Artikel (0=unbegrenzt), falls ein negativer Wert\n" "# angegeben wird, holt tin alle ungelesenen plus die letzten n gelesenen\n" "# Artikel\n" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "Anzahl der Tage, die ein Artikel als neu eingestuft wird. setzt." -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "Artikel Neuheitszeit-Limit" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "# Anzahl der Tage, die ein Artikel als neu eingestuft wird, (0=Aus)\n" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "WILDMAT für normale Wildcards, REGEX für die Nutzung von regulären Ausdrücken." -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "Wildcardprüfung" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" @@ -5333,310 +5385,310 @@ msgstr "# Wildcardprüfung\n" "# * 0 = wildmat\n" "# 1 = Regulärer Ausdruck\n" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "Artikel mit weniger Bewertung (Score) werden als `gekillt' markiert. " "setzt." -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "Bewertungsgrenze (kill)" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "# Jeder Artikel mit einer niedrigeren Bewertung (Score) wird als\n" "# gekillt markiert\n" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "Bewertung für gekillte Artikel. setzt." -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "Bewertung für gekillte Artikel" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "# Bewertung für gekillte Artikel\n" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "Artikel mit einer höheren Bewertung (Score) werd. als wichtig/hot markiert." -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "Bewertungsgrenze (select)" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "# Artikel mit einer höheren Bewertung (Score) werden als\n" "# wichtig (hot) markiert\n" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "Bewertung für wichtige Artikel (hot). setzt." -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "Bewertung für wichtige Artikel" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "# Bewertung für wichtige Artikel (hot)\n" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "''X-Face:''s mit slrnface Anzeigen" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "# Falls ON benutze slrnface(1) um ''X-Face:'' anzuzeigen.\n" "# Funktioniert nur wenn tin in einem xterm läuft.\n" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "Benutze ANSI-Farben" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "# Falls ON benutze ANSI-Farben\n" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "Standard Vordergrundfarbe" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# Standard Vordergrundfarbe\n" "# Voreinstellung: -1 (Standard Farbe)\n" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "Standard Hintergrundfarbe" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# Standard Hintergrundfarbe\n" "# Voreinstellung: -1 (Standard Farbe)\n" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "Farbe des inversen Text (Hinterg.)" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# Farbe des Hintergrunds für inversen Text\n" "# Voreinstellung: 4 (blau)\n" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "Farbe des inversen Text (Vordergr.)" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# Farbe des Vordergrunds für inversen Text\n" "# Voreinstellung: 7 (weiß)\n" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "Farbe der Textzeilen" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# Farbe der Textzeilen\n" "# Voreinstellung: -1 (Standard Farbe)\n" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "Farbe des Minihilfemenü" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# Farbe des Minihilfemenü\n" "# Voreinstellung: 3 (braun)\n" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "Farbe des Hilfstext" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "# Farbe der Hilfsseiten\n" "# Voreinstellung: -1 (Standard Farbe)\n" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "Farbe der Statusmeldungen" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "# Farbe der letzten Zeile im Artikel\n" "# Voreinstellung: 6 (cyan)\n" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "Farbe der zitierten Zeilen" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "# Farbe der zitierten Zeilen\n" "# Voreinstellung: 2 (grün)\n" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "Farbe von zweifach zitierten Zeilen" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# Farbe von zweifach zitierten Zeilen\n" "# Voreinstellung: 3 (braun)\n" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "Farbe von =>3-fach zitierten Zeilen" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# Farbe von =>3-fach zitierten Zeilen\n" "# Voreinstellung: 4 (blau)\n" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "Farbe der Artikelheaderzeilen" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# Farbe der Artikelheaderzeilen\n" "# Voreinstellung: 2 (grün)\n" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "Farbe des angezeigten Headers" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# Farbe des angezeigten Headers\n" "# Voreinstellung: 9 (hellrot)\n" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "Farbe der Subjectzeile" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# Farbe der Subjectzeile\n" "# Voreinstellung: 6 (cyan)\n" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "Farbe des Antwortzählers" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "# Farbe des Antwortzählers\n" "# Voreinstellung: 2 (grün)\n" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "Farbe des Autors (From:)" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# Farbe des Autors (From:)\n" "# Voreinstellung: 2 (grün)\n" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "Farbe des Hilfe/Mail-Zeichen" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# Farbe des Hilfe/Mail-Zeichen\n" "# Voreinstellung: 4 (blau)\n" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "Farbe von Signaturen" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# Farbe von Signaturen\n" "# Voreinstellung: 4 (blau)\n" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "Farbe der hervorgehobenen URLs" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "# Farbe der hervorgehobenen URLs\n" "# Voreinstellung: -1 (Standard Farbe)\n" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "Farbe der Hervorhebung *Sterne*" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# Farbe der Hervorhebung durch *Sterne*\n" "# Voreinstellung: 11 (gelb)\n" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "Farbe der Hervorhebung _Striche_" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# Farbe der Hervorhebung durch _Striche_\n" "# Voreinstellung: 13 (hellrosa)\n" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "Farbe der Hervorhebung /Schrägstr./" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# Farbe der Hervorhebung durch /Schrägstriche/\n" "# Voreinstellung: 11 (hellcyan)\n" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "Farbe der Hervorhebung -Durchstr.-" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# Farbe der Hervorhebung durch -Durchstreichen-\n" "# Voreinstellung: 12 (hellblau)\n" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "Hervorhebungsattribute *Sterne*" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5662,57 +5714,57 @@ msgstr "# Attribute der Hervorhebung von "# Hervorhebungsattribut für *Sterne*\n" "# Voreinstellung: 6 (fett)\n" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "Hervorhebungsattr. _Unterstriche_" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "# Hervorhebungsattribut für _Unterstriche_\n" "# Voreinstellung: 2 (beste Hervorhebung)\n" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "Hervorhebungsattr. /Schrägstriche/" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "# Hervorhebungsattribut für /Schrägstriche/\n" "# Voreinstellung: 5 (halbe Helligkeit)\n" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "Hervorhebungsattr. -Durchstreich.-" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "# Hervorhebungsattribut für -Durchstreichen-\n" "# Voreinstellung: 3 (Invers)\n" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "URL-Hervorhebung im Artikel" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "# URL-Hervorhebung aktivieren?\n" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "Wort-Hervorhebung im Artikel" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "# Wort-Hervorhebung aktivieren?\n" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "Anstelle der Markierung anzeigen" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5726,59 +5778,59 @@ msgstr "# Sollen die führenden und absch "# 1 = ja, anzeigen\n" "# * 2 = Leerzeichen anstelle darstellen\n" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Nach wie vielen Zeichen soll im Pager umbrochen werden? setzt." -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "Zeilen umbrechen nach" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "# In der Artikelanzeige Zeilen umbrechen bei Spalte\n" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "Nä.ungel.-kein Abbr. am Listenende?" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "# Diverse Funktionen in tin wechseln zum \"nächsten\" ungelesenen\n" "# Artikel. Diese Einstellung kontrolliert, ob tin am Ende der\n" "# Artikel/Threadliste abbricht (OFF) oder zum Beginn derselben springt und\n" "# von dort aus den nächsten ungelesenen Artikel sucht. (ON)\n" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "Standard Mail-Adresse (und Name) eingeben. setzt." -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "Mailadresse (und Name)" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "# EMail-Adresse und vollständiger Name des Benutzers, wenn sie nicht\n" "# benutzername@host (Vollständiger Name) lautet\n" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "Leeres Fup'2 im Editor anzeigen" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "# Wenn ON, zeige leeren Followup-To:-Header im Editor\n" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Setze Pfad/! Kommando/--none um Ihre Signatur festzulegen. setzt." -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "Erzeuge Signatur aus Pfad/Kommando" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5789,51 +5841,51 @@ msgstr "# Pfad der Sig (Zufällige Sigs)/ "# default_sigfile=!Kommando führt Kommando aus um Sig zu erzeugen\n" "# default_sigfile=--none hängt keine Signatur an\n" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Trenne Sig mit \"-- \" in eigener Zeile ab. wechselt & setzt." -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "Trenne Sig mit \"-- \" ab" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "# Falls ON trenne Signatur mit '\\n-- \\n' ab\n" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "Sig. beim Reposten eines Artikels hinzufügen? wechselt & setzt." -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "Signatur beim Reposten anhängen" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "# Falls ON wird die Signatur auch an repostete Artikel angehängt.\n" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "Zitatzeichen eingeben, %s oder %S für die Initialen des Verfassers." -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "Zitatzeichen" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "# Zeichen für Zitate in Antworten.\n" "# '_' wird durch ' ' ersetzt. %%s, %%S wird ersetzt durch Autoreninitialen.\n" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "Zitierverhalten" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5856,15 +5908,15 @@ msgstr "# Spezielle Optionen beim Zitier "# 7 = Zitatzeichen zusammenziehen & Signaturen zitieren & Leerzeilen " "zitieren\n" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "%A Adr %D Datum %F Adr+Name %G Gruppenname %M Message-ID %N Name %C Vorname" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "Einleitungszeile beim Antworten" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" @@ -5873,35 +5925,35 @@ msgstr "# Format der Einleitungszeile be "# %%A Adresse %%D Datum %%F Adr+Name %%G Gruppenname %%M Message-ID\n" "# %%N Voller Name %%C Vorname %%I Initialen\n" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "Einleitungszeile beim Crossposten" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "Einleitungszeile bei Mailantwort" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Falls ON, füge User-Agent:-Header ein. wechselt & setzt." -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "Füge 'User-Agent:'-header ein" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "# Falls ON füge 'User-Agent: header' ein\n" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "Zeichensatz für MIME (z.B. US-ASCII, ISO-8859-1, EUC-KR), setzt." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "MM_CHARSET" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5918,27 +5970,27 @@ msgstr "# Der lokale Zeichensatz, der au "# definiert, werden andere Zeichensätze als mm_charset nicht dargestellt\n" "# und die jeweiligen Zeichen durch ein '?' ersetzt.\n" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "MM_NETWORK_CHARSET" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# Zeichensatz für den MIME (Content-Type) Header der Artikel.\n" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "Mailbox-Format" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "# Format der Mailbox.\n" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "MIME-Kodierung in Newsartikeln" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5952,15 +6004,15 @@ msgstr "# MIME-Kodierung (8bit, base64, "# die meisten 8Bit Zeichensätze aus Ostasien, Griechenland und Russland\n" "# ist, da dort gehäuft 8Bit Zeichen vorkommen.\n" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "Nur ändern, wenn Sie genau wissen, was Sie machen. bricht ab." -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "Benutze 8bit-Zeichen im Newsheader" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" @@ -5972,27 +6024,27 @@ msgstr "# Wenn ON werden 8-Bit-Zeichen ( "# kodiert, wenn post_mime_encoding nicht auch auf 8bit eingestellt\n" "# ist.\n" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Nachbearbeitete Artikel autom. anz. wechselt, setzt, Ende." -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "Nachbearbeitete Artikel anzeigen" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "# Wenn ON werden nachbearbeitete Artikel automatisch angezeigt.\n" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "MIME-Kodierung für E-Mails" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "Benutze 8bit Zeichen im Mail Header" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -6009,24 +6061,24 @@ msgstr "# Wenn ON werden 8-Bit-Zeichen ( "# E-Mailheadern verbieten, daher sollte diese Einstellung NICHT auf ON\n" "# geändert werden, wenn es keine zwingende Gründe dafür gibt.\n" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "Leerzeichen am Zeilenende entfernen" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "# Falls ON lösche Leerzeichen am Zeilenende; verbessert die Geschwindigkeit\n" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "Wenn ON verwende Umschreibungen. wechselt & setzt." -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "Verwende Umschreibungen" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" @@ -6036,143 +6088,143 @@ msgstr "# Wenn ON verwende //TRANSLIT Er "# Terminal als EUR umschrieben, ohne //TRANSLIT würde tin ein\n" "# Fragezeichen verwenden.\n" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Sendet ihnen automatisch eine Kopie. wechselt & setzt." -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "Sendet Ihnen ein Cc automatisch" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "# Falls ON wird Ihr Name in das Cc: Feld beim Mailen des Artikels eingesetzt\n" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Sendet ihnen automatisch eine blinde Kopie. wechselt & setzt." -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "Sendet Ihnen eine blinde cc autom." -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "# Falls ON wird Ihr Name in das Bcc: Feld beim Mailen des Artikels " "eingesetzt\n" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "Geben Sie den Adressenteil an, vor dem Sie gewarnt werden. setzt." -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "Spamfallenwarnung in Adresse" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "# Eine Komma-separierte Liste von Adressteilen, vor denen gewarnt wird, wenn\n" "# Sie via Mail antworten wollen.\n" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Gültigkeit eines Filtereintrags in Tagen. setzt." -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "Tage, die ein Filter gültig ist" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "# Anzahl der Tage die ein temporärer Filter aktiv ist\n" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "Gepostete Artikel zum Filter hinzufügen. wechselt & setzt." -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "Füge gepostete Artikel zum Filter" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "# Falls ON füge gepostete Artikel die einen neuen Thread einleiten\n" "# zum Filter hinzu um evtl. Antworten hervorzuheben\n" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "Verzeichnis, in dem Artikel/Threads im mailbox-Format gespeichert werden." -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "Mail Verzeichnis" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "# (-m) Verzeichnis für im mailbox-Format gespeicherte Artikel/Threads\n" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "Speicher Artikel im Batchmode (-S)" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "# Falls ON werden Artikel/Threads im Batchmode gespeichert wenn -S,\n" "# oder gemailt, wenn -M bzw. -N in der Kommandozeile angegeben wurde.\n" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "Das Verzeichnis, in dem Artikel/Threads gespeichert werden sollen." -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "Verz. um Art/Threads zu speichern" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "# Verzeichnis in dem Artikel/Threads gespeichert werden\n" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Autom. sp. von Art/Thread anhand Archive-name:-Header. wechselt & " " setzt." -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "Nutze Archive-name: zum Speichern" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "# Falls ON werden Artikel mit gesetztem Archive-name:-Header unter\n" "# diesem abgespeichert\n" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Gesp. Art. gelesen markieren. wechselt, setzt, bricht ab." -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "Mark. gesp. Artikel/Threads gelesen" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "# Falls ON werden gespeicherte Artikel als gelesen markiert\n" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Bearbeite (z.B. unshar) gesp. Art/Threads. wechselt, setzt." -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "Nachbearbeiten gespeichert. Artikel" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -6184,101 +6236,101 @@ msgstr "# Nachbearbeiten gespeicherter A "# 1 = ja\n" "# 2 = nur Shell Archive (shar) auspacken\n" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "Bearbeite nur ungelesene Artikel" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "# Falls ON speichere/drucke/pipe/maile nur ungelesene Artikel\n" "# (markierte Artikel ausgenommen)\n" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "Drucke alles oder nur Teile des Headers wechselt & setzt." -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "Alle Header beim Drucken ausgeben" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "# Falls ON drucke alle Header des Artikels aus. Ansonsten nur die " "wichtigsten\n" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "Das Druckprogramm, das zum drucken von Artikeln/Threads benutzt wird." -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "Druckprogramm mit Optionen" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "# Druckprogramm mit Optionen zum drucken der Artikel/Threads\n" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "Anzeigeauffrischung nach Kommandos" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "# Falls ON wird die Anzeige nach einigen externen Kommandos aufgefrischt\n" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Starte Editor mit Einrückung. wechselt, setzt, bricht ab." -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "Starte Editor mit Einrückung" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "# Falls ON wird der Cursor im Editor an die definierte Position gesetzt.\n" "# Anderenfalls wird der Cursor in die erste Zeile gesetzt\n" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "%E für Editor, %F für Dateiname, %N für Zeilennummer, setzt." -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "Aufruf Ihres Editors" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "# Format der Editorzeile mit den Parametern für den Aufruf\n" "# %%E Editor %%F Dateiname %%N Zeilennummer\n" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "Name und Optionen für ext. inews, --internal für eingebaute Version" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "Externes inews-Programm" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "# Falls --internal wird das eingebaute mini inews zum posten via NNTP\n" "# benutzt, sonst wird das hier angegebene Programm mit den angegebenen\n" "# Optionen verwendet. z.B. 'inews -h'\n" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "%M für den Mailer, %S für Subject, %T für to, %F für Dateinamen, setzt." -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "Aufruf Ihres Mailkommandos" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6289,11 +6341,11 @@ msgstr "# Format der Mailkommandozeile m "# Ein Beispiel für elm : elm -s \"%%S\" \"%%T\" < %%F\n" "# Ein Beispiel für elm interaktiv: elm -i %%F -s \"%%S\" \"%%T\"\n" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "Benutze interaktives Mailprogramm" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -6306,57 +6358,57 @@ msgstr "# Interaktives Mailprogramm.\n" "übergeben\n" "# 2 = interaktives Mailprogramm, Mailheader werden als Argumente übergeben\n" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "Entferne ~/.article nach dem posten" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "# Falls ON entferne ~/.article nach dem posten.\n" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Dateiname für Kopie geposteter Artikel. setzt, kein Name=keine Kopie." -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "Gepostete Artikel speichern in" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "# Dateiname für die Kopie aller Postings (Voreinstellung posted)\n" "# Ist kein Name angegeben wird keine Kopie gespeichert\n" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Behalte alle Fehlschläge in ~/dead.articles. wechselt & setzt." -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "Halte Fehlschl. in ~/dead.articles" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "# Falls ON werden Fehlgeschlagene Artikel in ~/dead.articles verwahrt\n" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Wollen Sie nicht-abonnierte Gruppen aus der .newsrc entfernen?" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "Nur abonnierte Gruppen in newsrc" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# Falls ON entferne nicht-abonnierte Gruppen aus der newsrc\n" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "Lösche nicht vorhan. G. aus newsrc" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" @@ -6368,57 +6420,57 @@ msgstr "# Was soll mit nicht mehr vorhan "# 1 = entfernen\n" "# 2 = Mit D in der Auswahl markieren.\n" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "Sekunden, nach denen die active-Datei wieder gelesen wird. setzt." -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "Active alle ... Sekunden neu lesen" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "# Zeitintervall in Sekunden zwischen dem Wiedereinlesen des active (0=nie)\n" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "Autom. Wiederverbindung zum Server" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "# Falls ON wird eine unterbrochene Verbindung zum NNTP Server\n" "# automatisch reaktiviert\n" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Erzeuge lokale Kopien der NNTP Overview Dateien. wechselt & " "setzt." -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "Speichere NNTP Overview Daten lokal" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "# Falls ON, erzeuge lokale Kopien der NNTP Overview Dateien.\n" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "Format-Zeichenkette eingeben. setzt, bricht ab." -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "Datums Format-Zeichenkette" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "# Zeichenkette die die Datumsanzeige beschreibt.\n" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "Unicode Normalisierungsart" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -6434,11 +6486,11 @@ msgstr "# Unicode Normalisierungsart\n" "# 3 = NFC\n" "# 4 = NFD\n" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "BiDi wiedergeben" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "# Falls ON, wird bi-direktionaler Text von tin wiedergeben.\n" @@ -6463,11 +6515,11 @@ msgid "\n" msgstr "\n" "Server reagierte nicht, Wiederholung Nummer # %d\n" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "Betrete aktuelle Gruppe neu\n" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "Lese (%s)\n" @@ -6485,7 +6537,7 @@ msgstr "Sende letztes Kommando (%s) neu\ #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -6494,14 +6546,14 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "Kann %s nicht expandieren\n" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "Zeile %d ist länger als 998 Oktets und sollte gefaltet werden,\n" "aber die Kodierung ist weder auf %s noch auf %s gestellt\n" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" @@ -6511,14 +6563,14 @@ msgstr "Zeile %d ist länger als 998 Okte "angeschaltet zu haben, oder der Artikel enhält keine 8Bit Zeichen\n" "und wird daher nicht automatisch gefaltet wird.\n" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "Zeile %d ist länger als 998 Oktets und sollte gefaltet werden,\n" "aber die Kodierung ist nicht auf %s gesetzt\n" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "Poste: %.*s ..." @@ -6560,7 +6612,7 @@ msgstr "Dieser Artikel wurde im 'multipa "Format zu verstehen und einiges von was folgt, kann merkwürdig aussehen.\n" "\n" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "Bytes" Binary files tin-1.9.1/po/en_GB.gmo and tin-1.9.2/po/en_GB.gmo differ diff -Nurp tin-1.9.1/po/en_GB.po tin-1.9.2/po/en_GB.po --- tin-1.9.1/po/en_GB.po 2006-04-09 17:55:08.000000000 +0200 +++ tin-1.9.2/po/en_GB.po 2007-02-01 14:02:43.318789460 +0100 @@ -4,7 +4,7 @@ msgid "" msgstr "Project-Id-Version: tin 1.8.1\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2002-11-15 20:10+0000\n" "Last-Translator: Robert Brady \n" "Language-Team: \n" @@ -12,7 +12,7 @@ msgstr "Project-Id-Version: tin 1.8.1\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" @@ -153,135 +153,135 @@ msgstr "" msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "" @@ -640,7 +640,7 @@ msgstr "" msgid "Creating newsrc file...\n" msgstr "" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "" @@ -1623,7 +1623,7 @@ msgstr "" msgid "choose next group with unread news" msgstr "" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "" @@ -1936,327 +1936,335 @@ msgid "Lines %s " msgstr "" #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "" - -#: src/lang.c:479 msgid "Mail" msgstr "" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "" -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "" -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "" -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "" -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" "#\n" msgstr "" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "" -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "" -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "" -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "" -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "" -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "" +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "" + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr "" -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "" -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "" -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "" -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "NNTP authorisation password not found for %s" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "" -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2272,315 +2280,319 @@ msgid "# NNTP-server -> newsrc translati "#\n" msgstr "" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "" -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "" #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" msgstr "" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "" -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "" -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "" -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "" -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "" -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "" -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "" -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "" -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "" -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "" -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "" -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "" -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "" -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "" -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "" -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "" -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "" -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "" -#: src/lang.c:620 +#: src/lang.c:621 +msgid "References: line " +msgstr "" + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "" -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "" -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "" -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "" -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "" -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "" -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "" -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "" -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "" -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2592,221 +2604,221 @@ msgid "# %s server configuration file\n" "\n" msgstr "" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "" -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "" -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "" -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Screen initialisation failed" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "" -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "" -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "" -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "" -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "" -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "" -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "" -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "" -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "" -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "" -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "" -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "" -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "" -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "" -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "" -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "" -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -2816,323 +2828,328 @@ msgid "# Defaults for quick (1 key) kill "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "" -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr "" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "" -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "" -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "" -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "" -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr "" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr "" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr "" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr "" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr "" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr "" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr "" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr "" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr "" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr "" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr "" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr "" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr "" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr "" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr "" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr "" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr "" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr "" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" "Usage: %s [options] [newsgroup[,...]]" msgstr "" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr "" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr "" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" "%-100s\n" msgstr "" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3145,7 +3162,7 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3153,7 +3170,7 @@ msgid "\n" " not be encoded properly.\n" msgstr "" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3162,7 +3179,7 @@ msgid "\n" "Read WHATSNEW, etc...\n" msgstr "" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3170,7 +3187,7 @@ msgid "\n" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3179,18 +3196,18 @@ msgid "Warning: tin wrote fewer groups t "before you start tin once again!\n" msgstr "" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3200,47 +3217,47 @@ msgid "\n" " possible.\n" msgstr "" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "" -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "" -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "" -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr "" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3252,11 +3269,11 @@ msgid "\n" " M)enu option.\n" msgstr "" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr "" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3272,11 +3289,11 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "toggle colour" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3300,347 +3317,347 @@ msgid "# Changing colors of several scre "\n" msgstr "" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr " -a toggle colour flag" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "" -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "" -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "" -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "" -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "" -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "" -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "" -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "" -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "" -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "" -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "" -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "" -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr "" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr "" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr "" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "" -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr "" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr "" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr "" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "" -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "" -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "" -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "" -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3649,7 +3666,7 @@ msgid "\n" " newsgroup names.\n" msgstr "" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3657,7 +3674,7 @@ msgid "\n" " Please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3665,13 +3682,13 @@ msgid "\n" " To avoid trouble please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3692,498 +3709,518 @@ msgid "\n" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "" -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "" -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "" -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "Terminal does not support colour" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Grey" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "" -#: src/lang.c:1248 +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "" + +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "Colour Options" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "" -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "" -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4192,31 +4229,31 @@ msgid "# Part of from field to display\n "# 3 = both\n" msgstr "" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "" -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4227,15 +4264,15 @@ msgid "# Thread articles by ...\n" "# 5 = Percentage Match\n" msgstr "" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4248,11 +4285,11 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4260,15 +4297,15 @@ msgid "# Thread score\n" "# 2 = average\n" msgstr "" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "" -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4284,59 +4321,61 @@ msgid "# Sort articles by ...\n" "# 10 = Lines ascending\n" msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "" -#: src/lang.c:1466 +#: src/lang.c:1480 msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "" -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "" -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "" -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4344,184 +4383,162 @@ msgid "# Filter which articles\n" "# 2 = kill all articles and never show them\n" msgstr "" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "" - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "" - -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "" - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "" - -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "" - -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." +#: src/lang.c:1519 +msgid "Go to the next unread article with" msgstr "" -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "" - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" msgstr "" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "" -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "" -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4530,16 +4547,16 @@ msgid "# What informations should be dis "# 3 = lines & score\n" msgstr "" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4555,27 +4572,27 @@ msgstr "# Number of lines that cursor-up "# * 1 = line-by-line\n" "# 2 or greater = scroll by 2 or more lines (only in the pager)\n" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4585,28 +4602,28 @@ msgid "# Handling of uuencoded data in t "# be folded into a tag line.\n" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -4615,11 +4632,11 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -4630,579 +4647,605 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" "# 1 = regex\n" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "Use ANSI colour" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "# If ON using ANSI-colour\n" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "Standard foreground colour" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# Standard foreground colour\n" "# Default: -1 (default colour)\n" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "Standard background colour" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# Standard background colour\n" "# Default: -1 (default colour)\n" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "Colour for inverse text (bg)" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# Colour of background for inverse text\n" "# Default: 4 (blue)\n" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "Colour for inverse text (fg)" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# Colour of foreground for inverse text\n" "# Default: 7 (white)\n" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "Colour of text lines" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# Colour of text lines\n" "# Default: -1 (default colour\n" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "Colour of mini help menu" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# Colour of mini help menu\n" "# Default: 3 (brown)\n" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "Colour of help text" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "# Colour of help pages\n" "# Default: -1 (default colour)\n" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "Colour of status messages" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "# Colour of messages in last line\n" "# Default: 6 (cyan)\n" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "Colour of quoted lines" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "# Colour of quote-lines\n" "# Default: 2 (green)\n" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "Colour of twice quoted line" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# Colour of twice quoted lines\n" "# Default: 3 (brown)\n" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "Colour of =>3 times quoted line" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# Colour of >=3 times quoted lines\n" "# Default: 4 (blue)\n" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "Colour of article header lines" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# Colour of header-lines\n" "# Default: 2 (green)\n" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "Colour of actual news header fields" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# Colour of actual news header fields\n" "# Default: 9 (light red)\n" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "Colour of article subject lines" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# Colour of article subject\n" "# Default: 6 (cyan)\n" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "Colour of response counter" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "# Colour of response counter\n" "# Default: 2 (green)\n" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "Colour of sender (From:)" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# Colour of sender (From:)\n" "# Default: 2 (green)\n" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "Colour of help/mail sign" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# Colour of Help/Mail-Sign\n" "# Default: 4 (blue)\n" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "Colour of signatures" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# Colour of signature\n" "# Default: 4 (blue)\n" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "Colour of highlighted URLs" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "# Colour of highlighted URLs\n" "# Default: -1 (default colour)\n" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "Colour of highlighting with *stars*" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# Colour of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "Colour of highlighting with _dash_" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# Colour of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "Colour of highlighting with /slash/" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# Colour of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "Colour of highlighting w. -stroke-" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# Colour of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5217,54 +5260,54 @@ msgid "# Attributes of word highlighting "# Default: 6 (bold)\n" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5273,55 +5316,55 @@ msgid "# Should the leading and ending s "# * 2 = print a space instead\n" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5329,50 +5372,50 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "Quoting behaviour" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5385,50 +5428,50 @@ msgid "# How quoting should be handled w "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" "# %%N Full Name %%C First Name %%I Initials\n" msgstr "" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5437,27 +5480,27 @@ msgid "# Charset supported locally which "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5465,42 +5508,42 @@ msgid "# MIME encoding (8bit, base64, qu "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" "# parameter unless post_mime_encoding is 8bit as well.\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -5510,160 +5553,160 @@ msgid "# If ON, 8bit characters in mail "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" msgstr "" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "" -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -5671,95 +5714,95 @@ msgid "# Perform post processing (saving "# 2 = yes\n" msgstr "" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "" -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -5767,11 +5810,11 @@ msgid "# Format of mailer line including "# ie. elm interactive : elm -i %%F -s \"%%S\" \"%%T\"\n" msgstr "" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -5779,56 +5822,56 @@ msgid "# Interactive mailreader\n" "# 2 = use interactive mailreader without headers in file\n" msgstr "" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" @@ -5836,55 +5879,55 @@ msgid "# What to do with bogus groups in "# 2 = highlight with D on selection screen\n" msgstr "" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "" -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "Unicode normalisation form" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -5900,11 +5943,11 @@ msgstr "# Unicode normalisation form\n" "# 3 = NFC\n" "# 4 = NFD\n" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "" @@ -5928,11 +5971,11 @@ msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "" @@ -5949,7 +5992,7 @@ msgstr "" #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -5958,26 +6001,26 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" "posting doesn't contain any 8bit chars and thus folding won't happen\n" msgstr "" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "" @@ -6016,7 +6059,7 @@ msgid "This message has been composed in "\n" msgstr "" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "" Binary files tin-1.9.1/po/et.gmo and tin-1.9.2/po/et.gmo differ diff -Nurp tin-1.9.1/po/et.po tin-1.9.2/po/et.po --- tin-1.9.1/po/et.po 2006-04-09 17:55:08.000000000 +0200 +++ tin-1.9.2/po/et.po 2007-02-01 14:02:43.906717218 +0100 @@ -1,19 +1,19 @@ # Estonian translations for tin # Copyright © 2002 Free Software Foundation, Inc. -# Toomas Soome , 2005. +# Toomas Soome , 2006. # msgid "" -msgstr "Project-Id-Version: tin 1.7.11\n" +msgstr "Project-Id-Version: tin 1.8.2\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" - "PO-Revision-Date: 2005-09-30 09:49+0300\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" + "PO-Revision-Date: 2006-07-24 16:45+0300\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "%d Vigane overview kirje (%d välja) '%s'" @@ -155,140 +155,140 @@ msgstr "# sort_art_type=NUM\n" msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=NUM\n" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=NUM\n" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=SÕNE (n. talk.*)\n" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=NUM\n" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=teema (tõstutundlik) 1=teema (tõstutundetu)\n" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=saatja (tõstutundlik) 3=saatja (tõstutundetu)\n" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "# 4=msgid 5=read\n" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=SÕNE\n" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "# x_comment_to=ON/OFF\n" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "# fcc=SÕNE (n. =postkast)\n" # -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "# mime_forward=ON/OFF\n" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=toetatud_koodileht" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=SÕNE (vaikimisi on US-ASCII)\n" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "#\n" "# Märkus: parem on kõigepealt kirjeldada üldisemad (globaalse skoobiga)\n" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# ning seejärel konkreetsemad, grupi spetsiifilised, reeglid.\n" "#\n" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "# lisa täiendavaid päiseid\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "# *tekstidel* sea järeltöötlemise tüübiks ainult shar\n" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "# *binaarfailidel* sea täielik järeltöötlemine, kuid mitte TeX2ISO " "teisendus,\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "# kustuta ajutised failid ja sea Followup-To: postitaja\n" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(tundmatu)" @@ -652,7 +652,7 @@ msgstr "Loon salvestatud gruppidele acti msgid "Creating newsrc file...\n" msgstr "Loon newsrc faili...\n" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Vaikimisi" @@ -1663,7 +1663,7 @@ msgstr "märgi valitud grupis kõik artikl #: src/lang.c:380 msgid "mark all articles in group as read and move to next unread group" -msgstr "märgi grupi artiklid loetuks ja liigu järgmisse lugemata gruppi" +msgstr "märgi grupp loetuks ja liigu järgmisele lugemata grupile" #: src/lang.c:381 msgid "choose first group in list" @@ -1697,7 +1697,7 @@ msgstr "liiguta valitud gruppi loendis" msgid "choose next group with unread news" msgstr "vali järgmine lugemata artiklitega grupp" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "välju" @@ -1953,7 +1953,7 @@ msgstr "Vigane From: %s rida. Lugege uue #: src/lang.c:455 msgid "Invalid multibyte sequence found\n" -msgstr "Leiti vigane mitmebaidi järjend\n" +msgstr "Leidsin vigase mitmebaidi järjendi\n" #: src/lang.c:457 #, c-format @@ -2037,46 +2037,42 @@ msgid "Lines %s " msgstr "Rida: %s " #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "Message-ID: rida " - -#: src/lang.c:479 msgid "Mail" msgstr "E-post" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "postkasti " -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Saada artiklid aadressil [%.*s]> " -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "Saadan logi aadressil %s\n" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "Saada vearaport..." -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "Saadan VEARAPORTI aadressil %s?" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "Saadetud" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "Saadan aadressil %s..." -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" @@ -2086,283 +2082,295 @@ msgstr "# [Saada/Salvesta] fail \"active "# Neljas väli on baaskataloog (näiteks ~/Mail või ~/News)\n" "#\n" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "%s märgitud loetuks" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "Märkisin %d (%d) märgitud %s loetuks" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "Märgin kõik artiklid loetuks%s?" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "Märgi %s=märgitud artiklid, %s=jooksev artikkel, %s=välju: " -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "Märgin grupi %s loetuks?" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "Märgin teema loetuks%s?" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "Märgi %s=märgitud artiklid/teemad, %s=jooksev teema, %s=välju: " -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "Otsin %s gruppe..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=n jooksvaks grupiks; %s=järgmine lugemata; %s=otsi; %s=surma/vali;" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=autori otsing; %s=loetud; %s=rida alla; %s=rida üles; %s=märgi loetuks; %" "s=teema" -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=rida üles; %s=rida alla; %s=lk. üles; %s=lk. alla; %s=üles; %s=alla" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=otsi edaspidi; %s=otsi tagaspidi; %s=välju" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=autori otsing; %s=otsi sisu; %s=loetud; %s=vasta; %s=märgi loetuks" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "=n jooksvaks grupiks; %s=järgmine lugemata; %s,%s=otsi; %s=loetud" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=rida alla; %s=rida üles; %s=appi; %s=tõsta; %s=välju; %s=kõik/lugemata" -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=telli; %s=telli muster; %s=loobu; %s=loobu muster; %s=kõik/tellitud" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "=jooksev n; %s=järgmine lugemata; %s=loetud; %s=ekraani lülit" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=appi; %s=rida alla; %s=rida üles; %s=välju; %s=märgi; %s=lugemata" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "--Veel--" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "Tõstan %s..." +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "Message-ID: rida " + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr ", nimi: " -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "Mine gruppi [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "gruppidesse" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "Positsioon %s gruppide nimistus (1,2,..,$) [%d]> " -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "gruppi" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "Proovin newsrc faili uuesti salvestada?" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "Hoiatus: Teie newsrc faili ei salvestatud ühtegi gruppi. Katkestasin " "salvestamise." -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "newsrc fail on edukalt salvestatud.\n" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "- Järgmine vastus -" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "Serverile %s vastavat NNTP autoriseerimise parooli pole" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "Ei " -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "*** Artikleid pole ***" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "Postitatud artikleid pole" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "*** Kirjeldus puudub ***" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "Failil pole nime" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "Gruppi pole" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "*** Gruppe pole ***" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "Lugemiseks rohkem gruppe pole" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "Viimast teadet pole" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "E-posti aadressi pole" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "Salvestamiseks märgitud artikleid pole" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "Ei leia" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "Rohkem gruppe pole" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "Gruppe pole" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "Järgmist lugemata artiklit pole" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "Eelmist gruppi pole" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "Eelmist lugemata artiklit pole" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "Vastuseid pole" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "Jooksvas teemas pole vastuseid" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "Otsingusõne puudub" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "Teema puudub" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s: Terminalil peab olema puhasta realõpuni (ce) omadus\n" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s: Terminalil peab olema puhasta ekraanilõpuni (cd) omadus\n" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminalil peab olema ekraanipuhastamise (cl) omadus\n" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Terminal peab toetama kursori liigutamist (cm)\n" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s: ekraani omaduste kasutamiseks peab olema seatud keskkonnamuutuja TERM\n" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "%s/%s jaoks puudub vaatur\n" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "Gruppi pole sellel serveril" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "Gruppi %s pole aktiivsete gruppide failis" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "c=loo fail, a)lternatiivne nimi, d=vaikimisi .newsrc, q=välju: " -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "a)lternatiivne nimi, d=vaikimisi .newsrc, q=välju: " -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2389,40 +2397,40 @@ msgstr "# NNTP-server -> newsrc teisendu "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "Ainult" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Võti pole lubatud. Kasutage kompileerimisel %s." -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "Omaduste menüü" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Viga regulaaravaldises: %s positsioonil %d '%s'" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Viga regulaaravaldises: pcre sisemine viga %d" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Viga regulaaravaldises: uurimiseks - pcre sisemine viga %s" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "Postita vastus..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" @@ -2430,276 +2438,280 @@ msgstr "Artikli postitamisel tekkis viga "või muul viisil kõrvaldatav, võite artikli salvestada hiljem postitamiseks\n" "ja ^O käsuga hiljem postitada.\n" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "Postitatud artiklite ajalugu" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Postita gruppidesse [%s]> " -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "-- lõpptöötlus alustas --" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "-- lõpptöötlus lõpetas --" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "Postituse teema [%s]> " -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# Kokkuvõtte saadetud/postitatud teadetest saate tinis 'W' käsuga.\n" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "Postitan artiklit..." -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "Postitan ootel artiklid [%%s]? (%s/%s/%s/%s/%s): " -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "Kuum %s" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "Märgitud %s" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "Märkimata %s" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "Töötlen kirju, mis on kustutamiseks märgitud." -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "Töötlen salvestatud ja kustutamiseks märgitud artikleid." -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "Aktsepteerin Followup-To? %s=postita, %s=ignoreeri, %s=välju: " -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "Artiklit ei ole muudetud, katkestan saatmise?" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Kas soovite näha postitamisootel artikleid (%d)?" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "Lisan kiirsurmamise filtri?" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "Lisan kiirvaliku filtri?" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "Kas te tõesti soovite väljuda?" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=toimeta katkestamisteadet, %s=välju, %s=kustuta (katkesta) [%%s]: " -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "Teil on siin grupis märgitud artikleid - väljun siiski?" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=ootele: " -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=välju %s=toimeta %s=salvesta surmamise kirjeldus: " -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=välju %s=toimeta %s=salvesta valiku kirjeldus: " -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "Kas te tõesti soovite seadeid salvestamata väljuda?" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Vigane vahemik - lubatud on '0-9.$' näiteks 1-$" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "Kas soovite seda operatsiooni katkestada?" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "Kas soovite viivitamata tinist väljuda?" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "Loen vastust> " -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "Loen ('q' katkestamiseks)..." -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "Loen %sartikleid..." -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "Loen %satribuutide faili...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "Loen %sseadete faili...\n" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "Loen filtrite faili...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "Loen %s gruppe..." -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "Loen sisendi ajalugu...\n" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "Loen klahvitabeli faili...\n" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "Loen aktiivseid gruppe... " -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "Loen gruppe newsrc failist... " -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "Loen gruppide kirjeldusi... " -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "Loen newsrc faili..." -#: src/lang.c:620 +#: src/lang.c:621 +msgid "References: line " +msgstr "References: rida " + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "(%d:%02d järgneb)" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "Vigane grupp %s on eemaldatud." -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "Viga: %s uus nimi %s" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "Vastan autorile..." -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "Uuesti postitus" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "Postitan artikli uuesti..." -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Postitan artikli(d) gruppi(desse) [%s]> " -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "Algväärtustan newsrc?" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "Vastused edastatakse järgnevatesse gruppidesse" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Vastused edastatakse postitajale. %s=kirjuta, %s=postita, %s=välju: " -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "Vastus %4d : %4d" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "Jätkamiseks vajutage ..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "Valige From [%s] (j/e): " -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "Valige read: (num): " -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "Automaatselt valitavate artiklite menüü" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "Valige Msg-Id [%s] (f/l/o/n): " -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "Valige mustri ulatus: " -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "Valige teema [%s] (j/e): " -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "Valige tekstimuster : " -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "Valige aeg päevades : " -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2718,223 +2730,223 @@ msgstr "# %s serveri seadete fail\n" "############################################################################\n" "\n" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "Näitan ainult lugemata gruppe" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "Subject: rida (tõstutundetu)" -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "Subject: rida (tõstutundlik)" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "Salvesta" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "Salvestan '%s' (%s/%s)?" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "Salvestan seaded enne jätkamist?" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "Fail salvestamiseks> " -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "Salvestatud" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d lugemata (%4d kuuma) %s grupis %s\n" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "Salvestatud %s...\n" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "Midagi ei salvestatud" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s %d grupist%s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s salvestati %s%s --" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s salvestati %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "Salvestan..." -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Ekraani initsialiseerimine ebaõnnestus" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "%s: ekraan on liiga väike\n" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "ekraan on liiga väike, %s lõpetab töö\n" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "Otsin tagurpidi [%s]> " -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "Otsi kehast [%s]> " -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "Otsi edaspidi [%s]> " -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "Otsin..." -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Otsin artiklit %d/%d ('q' katkestamiseks)..." -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "Valige artikkel> " -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Valige teksti eest omaduse number või kasutage nooli ja . 'q' väljumiseks." -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "Valige grupp> " -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Sisestage valiku muster [%s]> " -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "Valige teema > " -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s %s %s (\"%s\") [%s]: saatke palun DETAILNE vea raport aadressil %s\n" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "serveri aktiivsete gruppide fail" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Uutesse gruppidesse ei saa siseneda. Tellige kõigepealt..." -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "Stardin: (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "Teemad (%d/%d)" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "Teema (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "Sisestage tellimise muster> " -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "%d gruppi on tellitud" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "%s on tellitud" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "Tellin... " -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "Postitan uuesti või asendan artikli(d) [%%s]? (%s/%s/%s): " -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Asendan artikli(d) gruppides [%s]> " -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "Asendan artikli ..." -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "Peatatud. %s uuesti käivitamiseks kirjutage palun 'fg'\n" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "%d päeva" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "TeX " -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "# Vaikimisi aktsioonide/viipade sõned\n" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -2951,261 +2963,261 @@ msgstr "# Vaikeväärtused kiire (1 võtme) "# case=ON/OFF ON=filter on tõstutundlik OFF=tõstutundetu\n" "# expire=ON/OFF ON=kehtivusaeg default_filter_days OFF=ei aegu\n" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "# Kui on ON, trüki teema või grupikirjeldus viimasele reale\n" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# Masin & aeg - kasutatakse uute gruppide leidmiseks (mitte muuta)\n" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "Uudiseid pole\n" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "Teema" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "Teemataseme käsud" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "Teema pole valitud" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "Teema on valitud" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "teemad" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "Teemade vahemik" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "teema" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "Teema %4s : %4s" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "Järjestan artiklid teemade kaupa..." -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "Sõnade esiletõstmine lülitatud %s" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "Lülitatud rot13 kodeerimine" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "Lülitatud saksa TeX kodeering %s" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "Lülitatud tab-width väärtus %d" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d Üritan punkt-lukustada %s" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "%d Üritan lukustada %s" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr " h=appi\n" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "Piiramata" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "Sisestage loobumise muster> " -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "Viga %s dekodeerimisel: %s" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "Lõpp puudub." -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "%s on edukalt dekodeeritud." -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[-- %s/%s, %suuenkodeeritud fail, %d rida, nimi: %s --]\n" "\n" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "lugemata " -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "loobunud %d grupist" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "Loobunud grupist %s" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "Loobun gruppidest... " -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "Tükeldan teemad..." -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "Uuendatud" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "Uuendan" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "Proovin %s\n" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "Selles artiklis pole rohkem URL'e" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "Kasutan selle teate lugemiseks MIME näitamise programmi?" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr " -c märgi tellitud gruppides kõik artiklid loetuks (pakettmood)" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr " -Z tagasta väärtus, mis näitab, kas on lugemata artikleid (pakettmood)" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr " -q ära otsi uusi gruppe" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr " -X töö lõpetamisel ära salvesta ühtegi faili" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr " -d ära näita gruppide kirjeldusi" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr " -G num loe aunult num artiklit/gruppi" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr " -H %s kasutamise abiinfo" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr " -h see abitekst" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I kat uudiste indeksfaili kataloog [vaikimisi=%s]" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr " -u värskenda indeksfaile (pakettmood)" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m kat kirjakaustade kataloog [vaikimisi=%s]" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Saatke palun vea raport/kommentaarid aadressil %s" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr " -N saada uued vastused teie postitustele (pakettmood)" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr " -M kasut saada uued artiklid näidatud kasutajale (pakettmood)" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f fail tellitud gruppide fail [vaikimisi=%s]" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr " -x postitamiseta mood" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr " -w postita artikkel ja lõpeta töö" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr " -o postita kõik postitamisootel artiklid ja lõpeta töö" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr " -r loe artikleid kasutades vaikimisi NNTP serverit" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr " -R loe artikleid, mis on salvestatud -S võtmega" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s kat artiklite salvestamise kataloog [vaikimisi=%s]" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr " -S salvesta uued artiklid hilisemaks lugemiseks (pakettmood)" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr " -z alusta tööd, kui on lugemata uudiseid" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3214,37 +3226,42 @@ msgstr "Usenet klient.\n" "\n" "Kasuta: %s [võtmed] [grupp[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr " -v esita pakettmoodi käskudega detailsemat informatsiooni" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr " -V esita versiooni ja kuupäeva informatsioon" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s on kasutatav ainult pakettmoodi käskudeta\n" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s on kasutatav ainult pakettmoodi käskudega\n" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d piiridest väljas (0 - %d). Sean 0" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "Vaatan '%s' (%s/%s)?" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3253,26 +3270,26 @@ msgstr "\n" "Hoiatus: postitus ületab %d veergu. Esimene pikk rida on rida %d:\n" "%-100s\n" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Hoiatus: artiklit ei ole toimetamise käigus muudetud\n" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Hoiatus: \"Subject:\" real on ainult tühikud.\n" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "\n" "Hoiatus: \"Subject:\" algab fraasiga \"Re: \", aga \"References:\" välju " "pole.\n" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3280,7 +3297,7 @@ msgstr "\n" "Hoiatus: Artiklis on \"References:\" päis, aga \"Subject:\" ei alga fraasiga\n" " \"Re: \" ega sisalda \"(was:\".\n" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3300,7 +3317,7 @@ msgstr "Lugege hoolikalt!\n" "Siin on artikkel, mida te hakkate kustutama:\n" "\n" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3312,7 +3329,7 @@ msgstr "\n" " lisab artiklile signatuuri, siis on võimalik, et seda ei kodeerita\n" " korrektselt.\n" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3325,7 +3342,7 @@ msgstr "\n" "Väärtused failis %s on muutunud!\n" "Palun lugege faile WHATSNEW, jne...\n" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3337,7 +3354,7 @@ msgstr "\n" "kasutatu!\n" "Mõningaid väärtusi failis %s võidakse ignoreerida, mõningaid võidakse muuta!\n" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3350,7 +3367,7 @@ msgstr "Hoiatus: tin kirjutas vähem grup "grupist%s, tähendab see viga ja te peaksite varundama oma %s\n" "enne, kui te tini uuesti käivitate!\n" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" @@ -3358,12 +3375,12 @@ msgstr "\n" "Hoiatus: Leidsin %d '-- \\n' rida, mis võib tekitada osades inimestes " "segadust.\n" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Hoiatus: Salvestati ainult %d artiklit %d artiklist" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3378,48 +3395,48 @@ msgstr "\n" "võimalikult\n" " lühikesed.\n" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "Hoiatus: see aadress võib sisaldada rämpsposti lõksu. %s=jätkan, %s=katkestan?" -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "\n" "Hoiatus: Signatuuride alguses peaks olema '-- \\n', mitte '--\\n'.\n" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "Kirjutan atribuutide faili..." -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "%d Vastust" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "Lisatud %d %s" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "Tellimata gruppe pole" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "Näitan ainult tellitud gruppe" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "Jah " -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr " Teil on kiri\n" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3438,11 +3455,11 @@ msgstr "\n" " MM_NETWORK_CHARSET. Viimast saate teostada kasutades valikut M)" "enüü.\n" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D silumismood 1=NNTP 2=KÕIK" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3466,11 +3483,11 @@ msgstr "Lugege hoolikalt!\n" "Siin on artikkel, mida te asute kustutama:\n" "\n" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "lülita värve" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3514,44 +3531,44 @@ msgstr "# Ekraaniosade värvide muutmine\ "# 15 = helevalge\n" "\n" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr " -a lülita värvide kasutamist" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Viga: Followup-To real on rohkem kui üks grupp!\n" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Viga: ristpostitus %d gruppi ja Followup-To rida puudub!\n" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "Viga: \"%s\" ei ole lubatud grupp!\n" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Hoiatus: Followup-To on seatud rohkem, kui ühele grupile!\n" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Hoiatus: ristpostitus %d uudisegruppi ja Followup-To rida puudub!\n" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" @@ -3559,316 +3576,316 @@ msgstr "\n" "Hoiatus: \"%s\" puudub teie newsrc failist, see võib olla selles serveris " "vigane!\n" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "\n" "Hoiatus: \"%s\" ei ole selles serveris kehtiv grupp!\n" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "Edukalt kirjutatud %d faili %d artiklist. Esines %d viga%s." -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "Osad puuduvad." -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "Algus puudub." -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "Andmeid pole." -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "Tundmatu viga." -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\t%s kontrollsumma (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "Loen aktiivsete kirjade kausta... " -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "Loen kirjagruppide faili... " -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "kasuta artiklil PGP operatsioone" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "Lisan võtmed avalike võtmete hoidlasse?" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=krüpti, %s=allkirjasta, %s=mõlemad, %s=välju: " -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=allkirjasta, %s=allkirjasta & lisa avalik võti, %s=välju: " -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP pole seadistatud (ei saa avada %s)" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "Artikkel pole allkirjastatud ja avalikke võtmeid pole" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=pgp, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=pgp, %s=saada [%%s]: " -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=pgp, %s=menüü, %s=postita, %s=ootele [%%" "s]: " -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=pgp, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=välju, %s=toimeta, %s=pgp, %s=saada [%%s]: " -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=välju, %s=toimeta, %s=pgp, %s=menüü, %s=postita, %s=ootele [%%s]: " -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=saada [%%s]: " -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=menüü, %s=postita, %s=ootele [%%s]: " -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=välju, %s=toimeta, %s=saada [%%s]: " -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=välju, %s=toimeta, %s=menüü, %s=postita, %s=ootele [%%s]: " -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "Proovige asjade kiirendamiseks cache_overview_files.\n" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "Tin kasutab hoopis kohalikke indeksfaile.\n" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "Ei leia NNTP serveri nime" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "Loon ühendust serveriga %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "Lõpetan ühenduse...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Vigane vastus GROUP käsule, %s grupile %s" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "NNTP serveriga %s ühenduse loomine ebaõnnestus. Lõpetan..." -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "205 Sulen ühendust" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "Teie server ei toeta NNTP XOVER või OVER käsku.\n" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "Ühendus uudisegruppide serveriga aegus. ühendun uuesti?" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "Kirjutage serveri nimi faili %s,\n" "või seadke keskonnamuutuja NNTPSERVER" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr " -A sunni ühenduse loomisel autentima" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv loe uudiseid NNTP serverist serv [vaikimisi=%s]" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port kasuta NNTP porti [vaikimisi=%d]" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr " -Q kiirstart. Sama kui -nqd" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l kasuta LIST käsku GROUP (-n) käsu asemel" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n loe NNTP serverist ainult tellitud .newsrc grupid" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Tundmatu teenus.\n" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "\n" "Probleem pistikuga või ühendusega\n" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Loon ühendust serveriga %s: " -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "Annan alla...\n" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "Teie server ei paku Xref: päiserida XOVER informatsioonis.\n" "Tin üritab kasutada XHDR XREF selle asemel (võib olla mõnevõrra " "aeganõudvam).\n" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "Teie server ei paku Xref: päiserida XOVER informatsioonis.\n" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "%s ei saa avada. Proovige %s -r, et lugeda uudiseid üle NNTP.\n" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr " -Q kiirstart. Sama kui -qd" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr " -l loe pooli skaneerimise (-n) asemel ainult faili active" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n loe poolist ainult tellitud .newsrc gruppe" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Teie server ei paku Xref: päiserida NOV failides.\n" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "Välise inews programmiga postitamine ebaõnnestus. Proovin sisemist inewsi?" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "See töötas! Kas kasutan nüüd alati sisemist inews programmi?" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "%d %s trükitud" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "saada artikkel/teema/kuum/muster/märgitud trükkalile" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "Trüki" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "Trükin..." -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "saada artikkel/teema/kuum/muster/märgitud toruga käsule" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "Käsku pole" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "Toru" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Toru käsku [%.*s]> " -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "Saadan torusse..." -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "Toru kasutamine pole lubatud." -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3880,7 +3897,7 @@ msgstr "\n" " tühik on see, mis eraldab koolonit (:) teistest komponentidest\n" " real. Gruppide eraldamiseks kasutage palun koma (,).\n" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3891,7 +3908,7 @@ msgstr "\n" " tühikuid, siis ei ole see lubatud. Palun kirjutage kõik grupid\n" " ühele reale.\n" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3902,14 +3919,14 @@ msgstr "\n" " See on uus omadus ja kõik serverid ei pruugi seda toetada.\n" " Probleemide vältimiseks, kirjutage palun kõik grupid ühele reale.\n" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "\n" "Hoiatus: Rida \"%s:\" sisaldab tühikuid, mis TULEKS eemaldada.\n" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3939,502 +3956,522 @@ msgstr "\n" " tega, siis ilmselt enamus lugejaid ignoreerib teid täiesti. Tänapäeval on\n" " võrgus palju rahvast ja infot!\n" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "paojada käsureale" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "Käsurea käsk (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "Sisestage käsurea käsk [%s]> " -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s: Ei saa TERM kirjet\n" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Grupp %.*s ('q' lõpetamiseks)..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "Grupp %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "Server ei vasta\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=toru; %s=kiri; %s=trüki; %s=välju; %s=kõik/lugem; %s=salv; %s=märgi; %" "s=postita" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=toru; %s=kiri; %s=trüki; %s=välju; %s=kirjuta; %s=salv; %s=märgi; %" "s=postita" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=kiri; %s=trüki; %s=välju; %s=kõik/lugem; %s=salvesta; %s=märgi; %s=postita" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=kiri; %s=trüki; %s=välju; %s=kirjuta; %s=salvesta; %s=märgi; %s=postita" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=toru; %s=kiri; %s=välju; %s=kõik/lugemata; %s=salv; %s=märgi; %s=postita" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=toru; %s=kiri; %s=välju; %s=kirjuta; %s=salvesta; %s=märgi; %s=postita" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=kiri; %s=välju; %s=kõik/lugemata; %s=salvesta; %s=märgi; %s=postita" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=kiri; %s=välju; %s=vasta kirjaga; %s=salvesta; %s=märgi; %s=postita" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "Terminal ei toeta värve" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "Proovin %s" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "Pole" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "Teema" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "Viited" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "Nii teema kui viited" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "Mitmeosaliste teema" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "Percentage Match" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "Ei" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "Jah" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "Peida kõik" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "Aadress" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "Täisnimi" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "Aadress ja nimi" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "Maksimum" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "Summa" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "Keskmine" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "Read" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "Kaal" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "Read & kaal" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "Must" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "Punane" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "Roheline" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "Pruun" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "Sinine" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "Roosa" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "Lilla" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "valge" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Hall" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "Helepunane" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "Heleroheline" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "Kollane" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "Helesinine" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "Heleroosa" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "Helelilla" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "Helevalge" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "Ei kasuta" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "Märk" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "Tühik" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "Tavaline" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "Parim esiletõstmine" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "Allajoonitud" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "Pööratud video" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "Plinkiv" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "Poolhele" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "Paks" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "pole" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "käsud" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "valik" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "käsud & välju" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "käsud & valik" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "välju & valik" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "käsud & välju & valik" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "Shelli arhiiv" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "Subject: (kahanevalt)" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "Subject: (kasvavalt)" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "From: (kahanevalt)" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "From: (kasvavalt)" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "Date: (kahanevalt)" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "Date: (kasvavalt)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "Kaal (kahanevalt)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "Kaal (kasvavalt)" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "Lines: (kahanevalt)" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "Lines: (kasvavalt)" -#: src/lang.c:1248 +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "" + +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "Hoia alati" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "Eemalda alati" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "Märgi valikuekraanil tähega D" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "Surma ainult lugemata artiklid" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "Surma kõik artiklid & näita K tähega" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "Surma kõik artiklid ja ära näita" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "Ei midagi erilist" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "Tihenda tsitaadid" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "Tsiteeri allkirju" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "Tihenda tsitaadid, tsiteeri allkirju" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "Tsiteeri tühje ridu" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "Tihenda tsitaadid, tsiteeri tühje ridu" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "Tsiteeri allkirju ja tühje ridu" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "Tihenda tsitaate, tsiteeri allkirju ja tühje ridu" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "ei" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "päistega" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "päisteta" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "NFKC" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "NFKD" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "NFC" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "NFD" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "Ekraani seaded" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "Värvide seaded" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "Artikli piirangute seaded" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "Postitamise/saatmise seaded" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "Salvestamise/trükkimise seaded" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "Ekspertseaded" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "Filtreerimise seaded" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr " lülitab, seab, katkestab." -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "Näita minimenüüd & post. etiketti" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "# Kui väärtus on ON, näita enimkasutatavate käskude minimenüüd\n" "# ja peale artikli kirjutamist postitamise etiketti.\n" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Näita gruppide lühikirjeldusi. lülitab ja seab." -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "Näita iga grupi lühikirjeldust" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "# Kui väärtus on ON, näita gruppide tasemel iga grupi nime\n" "# järel grupi lühikirjeldust\n" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Näita grupimenüüs teema ja From (autor) välju. lülitab ja seab." -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "Näita grupimenüüs autorit" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4448,32 +4485,32 @@ msgstr "# Millist saatja nime osa näidat "# * 2 = täisnimi\n" "# 3 = mõlemad\n" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Märgi valik -> või heleda ribaga. lülitab, seab." -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "Joonista -> heleda riba asemel" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "# Kui väärtus on on, kasuta valiku märkimiseks ->, muidu riba\n" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "Kasuta päistel pööratud videot" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "# Kui väärtus on ON, kasuta erinevatel tasemetel päiste näitamisel\n" "# pööratud videot\n" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "Artiklite teemadesse jagamine" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4491,15 +4528,15 @@ msgstr "# Artiklite teemadesse jagamine\ "# 4 = Mitmeosaline teema\n" "# 5 = Protsentuaalne sobivus\n" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "Sisestage teema loomiseks vajalik protsentuaalne sobivus. seab." -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "Teema protsentuaalne sobivus" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4517,11 +4554,11 @@ msgstr "# Teema protsentuaalne sobivus.. "# teemasse seotaks. Näiteks 'happy' ja 'harpy' sobiksid, aga 'harpie',\n" "# 'happie' ja 'harppy' samasse teemasse 'happy'-ga ei läheks\n" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "Teema kaal" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4533,16 +4570,16 @@ msgstr "# Teema kaal\n" "# 1 = summa\n" "# 2 = keskmine\n" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Järjesta artiklid Subject, From, Date, kaalu järgi. lülitab, " "seab." -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "Artiklite järjestus" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4570,65 +4607,68 @@ msgstr "# Artiklite järjestamine\n" "# 9 = Ridu kahanev\n" "# 10 = Ridu kasvav\n" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Järjesta teemad mitte millegi või kaalu järgi. lülitab, seab." -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "Teemade järjestus" -#: src/lang.c:1466 +#: src/lang.c:1480 +#, fuzzy msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "# Teemade järjestamine\n" "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n" "# 0 = ei järjesta\n" "# * 1 = Skoor kahanev\n" "# 2 = Skoor kasvav\n" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Vii kursor grupis esimesele/viimasele lugemata artiklile. lülitab, " " seab." -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "Mine grupis esimesele lugemata art." -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# Kui väärtus on ON, vii kursor grupi esimesele lugemata artiklile,\n" "# muidu viimasele\n" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Näita kõiki või ainult lugemata artikleid. lülitab, seab." -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "Näita ainult lugemata artikleid" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "# Kui väärtus on ON, näita ainult lugemata artikleid, muidu näita kõiki.\n" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "Ainult lugemata artiklitega grupid" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "# Näita ainult neid tellitud gruppe, kus on lugemata artikleid.\n" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "Filtreeri artikleid" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4640,196 +4680,172 @@ msgstr "# Artikklite filtreerimine\n" "# 1 = Surma kõik artiklid ja näita teemades märgiga K\n" "# 2 = Surma kõik artiklid ja ära näita neid\n" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "Tab viib järgmisele lugemata art." - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "# Kui väärtus on ON, viib Tab käsk järgmisele lugemata artiklile\n" - -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "Tühikuga artikli lõpust edasi kerimine hüppab järgmisele lugemata artiklile." - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "Tühik viib järgmisele lugemata art." +#: src/lang.c:1519 +msgid "Go to the next unread article with" +msgstr "" -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "# Kui väärtus on ON, viib artikli lõpus tühiku vajutamine\n" - "# järgmisele lugemata artiklile (rn stiil)\n" - -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "/noolega art. lõpust edasi kerimine hüppab järgmisele lugemata art." - -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "PgDn viib järgmisele lugemata art." - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "# Kui väärtus on ON, viib artikli lõpus PGDN või nool alla vajutamine\n" - "# järgmisele artiklile\n" +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" +msgstr "" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "Nool paremale näitab teema loendit" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "# Kui väärtus on ON, näita nool paremale klahvi vajutamisel teema artikleid.\n" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Sisestage sümbol kustutatud artiklite märkimiseks. seab, katkestab." -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "Kustutatud artiklite marker" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis tähistab kustutatud artiklit (vaikimisi 'D')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Sisestage sümbol, mis märgib vahemikku kuuluvaid artikleid. seab, " "katkestab." -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "Artiklite vahemiku marker" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis märgib vahemikku kuuluvaid artikleid (vaikimisi '#')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Sisestage tagasituleva artikli marker. seab, katkestab." -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "Tagasi tulnud artiklite marker" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel tuleb tagasi (vaikimisi '-')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Sisestage valitud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "Valitud artiklite marker" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on automaatselt valitud (vaikimisi '*')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Sisestage värskeid artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "Värskete artiklite marker" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on värske (vaikimisi 'o')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Sisestage lugemata artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "Lugemata artiklite marker" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on lugemata (vaikimisi '+')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "Sisestage loetud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "Loetud artiklite marker" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on loetud (vaikimisi ' ')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Sisestage surmatud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "Surmatud artiklite marker" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on surmatud (vaikimisi 'K')\n" "# _ asendatakse tühikuga ' '\n" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Sisestage valitud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "Lugemiseks valitud artiklite marker" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Sümbol, mis näitab, et artikkel on enne lugemist valitud (vaikimisi ':')\n" "# Surmamise tase peab samuti olema määratud, _ asendatakse tühikuga ' '\n" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Sisestage maksimaalne näidatav grupi nime pikkus. seab." -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "Maksimaalne grupinime pikkus" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Maksimaalne grupi nime pikkus, mida näidatakse ekraanil\n" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "Näita loendis artikli kaalu/ridu" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4843,17 +4859,17 @@ msgstr "# Millist informatsiooni tuleks "# 2 = kaalu\n" "# 3 = ridu ja kaalu\n" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 = kerida kogu leht, -1 = näita eelmist rida järgmise lehe esimese reana, -2 " "= pool lehte" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "Lehitsejas keritavate ridade arv" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4869,27 +4885,27 @@ msgstr "# Ridade arv, mida lehitseja ker "# * 1 = rida haaval\n" "# 2 või suurem = keri 2 või enama rea haaval (ainult lehitsejas)\n" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "Näita signatuure, lülitab, seab." -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "Näita signatuure" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "# Kui väärtus on OFF, ei näita koos artiklitega signatuure\n" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Näita uuenkodeeritud andmeid märgitud lisadena. lülitab ja seab." -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "Näita uuenk. andmeid lisadena" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4906,30 +4922,30 @@ msgstr "# uuenkodeeritud andmete käsitle "# märgituna.\n" # -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "Dekodeeri saksa TeX esituses tähed ISO koodideks. lülitab, seab." # -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "Näita \"a kui Umlaut-a" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "# Kui väärtus on ON, teisenda saksa TeX esituses tähed ISO\n" "# koodideks ja näita \"a nagu Umlaut-a, jne.\n" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "Tühikuga eraldatud päised" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "Näita neid päiseid (või *)" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -4944,11 +4960,11 @@ msgstr "# Milliseid artikli päiseid te s "tühikut.\n" "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "Ära näita neid päiseridu" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -4966,28 +4982,28 @@ msgstr "# Sama kui 'news_headers_to_disp "#\n" "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "Kas te soovite multipart/alternative artiklite automaatset käsitlemist?" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "Jäta multipart/alternative osad" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "# Kui väärtus on ON, loobu automaatselt multipart/alternative teadete " "lisadest\n" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "Regulaaravaldis otsustamaks, milliseid ridu tsitaatides näidata." -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "Tsiteeritud ridade näitamise regex" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -4995,15 +5011,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# milliseid read on tsiteeritud. Tsiteeritud ridu näidatakse col_quote.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "Regulaaravaldis otsustamaks, milliseid ridu näidata col_quote2." -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "Topelt tsiteeritud ridu näitav reg" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5012,15 +5028,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# näidatakse col_quote2.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "Regulaaravaldis otsustamaks, milliseid ridu näidata col_quote3." -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr ">= 3 tsiteeritud ridu näitav reg" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5029,15 +5045,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# näidatakse col_quote3.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "Regex et otsustada, milliseid sõnu näidata col_markslashes abil." -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "Regex et esile tõsta /kaldkriipse/" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5045,15 +5061,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markslashes abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "Regex et otsustada, milliseid sõnu näidata col_markstars abil." -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "Regex et esile tõsta *tärne*" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5061,15 +5077,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markstars abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "Regex et otsustada, milliseid sõnu näidata col_markstroke abil." -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "Regex et esile tõsta -kriipse-" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5077,15 +5093,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markstroke abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "Regex et otsustada, milliseid sõnu näidata col_markdash abil." -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "Regex et esile tõsta _alakriipse_" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5093,44 +5109,70 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markdash abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "Regulaaravaldis eemaldatava teema prefiksi leidmiseks. Eraldajaks on '|'." -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "Regex teema prefiksi leidmiseks" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "# Regulaaravaldis, mida tin kasutab, et leida teema prefiksit, mida\n" "# enne päise näitamist eemaldada.\n" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "Regulaaravaldis eemaldatava teema sufiksi leidmiseks. Eraldajaks on '|'." -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "Regex teema sufiksi leidmiseks" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "# Regulaaravaldis, mida tin kasutab teema sufiksi leidmiseks,\n" "# mis eemaldatakse vastuse saatmisel või postitamisel.\n" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "Sisestage välise MIME lehitseja nimi ja võtmed, sisemise valib --internal" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "MIME kahendsisu lehitseja" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" @@ -5140,127 +5182,127 @@ msgstr "# --internal korral kasuta artik "# Muidu määra automaatseks vaatamiseks väline programm (nt. metamail) või\n" "# jäta tühjaks\n" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "Küsi enne mitte-tekstiliste osade vaatamist kinnitust" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "Küsi MIME lehitseja kasutamise luba" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "# Kui väärtus on ON, küsi metamaili kasutamise luba\n" "# see juhtub ainult siis, kui metamail_prog on väärtustatud\n" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Küsi, kas märkida väljumisel grupid loetuks. lülitab ja seab." -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "Väljumisel märkida grupid loetuks" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "# Kui väärtus on ON, küsi kasutajalt, kas märkida loetud gruppides kõik\n" "# artiklid loetuks\n" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "Nool vasakule märgib grupi loetuks" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "# Kui väärtus on ON, märgi grupp/teema loetuks, kui sellest väljutakse\n" "# nool vasakule klahviga.\n" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "Nool vasakule märgib teema loetuks" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "Tegevused mis nõuavad kinnitust" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "# Millele me peaksime küsima kinnitust.\n" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "'Märgi art. loetuks' eirab märke" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "# Kui väärtus on ON märgib 'Märgi artikkel loetuks' funktsioon ainult\n" "# jooksva artikli.\n" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "Programm URLide avamiseks, seab, katkestab." -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "Programm URLide avamiseks" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "# Programm URLide avamiseks. URL lisatakse argumendiks\n" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "Kasuta xterm aknas hiirt" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "# Kui väärtus on ON, luba xterm aknas hiire tugi\n" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "Kasuta kerimisnuppe" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "# Kui väärtus on ON, luba kerimisnuppude kasutamist terminalidel, millel need " "on olemas\n" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "Sisestage suurim laetavate artiklite arv. seab." -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "Laetavate artiklite arv" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "# Laetavate artiklite arv (0=limiit puudub), negatiivne väärtus seab\n" "# maksimaalse arvu loetud artikleid, mida lugeda enne lugemata artiklit\n" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "Sisestage artikli värskuse kestus. seab." -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "Artikli värskuse ajapiir" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "# Päevad, mille jooksul loetakse artiklit värskeks, (0=OFF)\n" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "WILDMAT tavalistele jokkeritele, REGEX täisregulaaravaldistega otsimisele." -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "Jokkeritega otsimine" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" @@ -5270,307 +5312,307 @@ msgstr "# Jokkeritega otsimine\n" "# * 0 = wildmat\n" "# 1 = regex\n" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "Sisestage minimaalne kaal artikli surmamiseks. seab." -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "Kaalu alampiir (surmamine)" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "# Kaalu alampiir, enne kui artikkel märgitakse surmatuks\n" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "Sisestage vaikimisi kaal artiklite surmamiseks. seab." -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "Artiklite surmamise vaikimisi kaal" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "# Vaikimisi kaal artiklite surmamiseks\n" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "Sisestage minimaalne kaal, enne kui artikkel märgitakse kuumaks. seab." -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "Kaalu alampiir (valik)" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "# Kaalu alampiir, enne kui artikkel märgitakse muumaks\n" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "Sisestage vaikimisi kaal artiklite valimiseks. seab." -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "Vaikimisi kaal artiklite valimiseks" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "# Vaikimisi kaal artiklite valimiseks\n" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "''X-Face:'' näitamiseks slrnface" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "# Kui väärtus on ON, kasutan ''X-Face:'' päiste käsitlemiseks slrnface(1).\n" "# Kasulik ainult xterm aknas.\n" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "Kasuta ANSI värve" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "# Kui väärtus on ON, kasuta ANSI värve\n" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "Standardne esiplaani värv" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# Standardne esiplaani värv\n" "# Vaikimisi: -1 (vaikimisi värv)\n" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "Standardne tagaplaani värv" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# Standardne tagaplaani värv\n" "# Vaikimisi: -1 (vaikimisi värv)\n" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "Pööratud teksti värv (tagaplaan)" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# Pööratud teksti tagaplaani värv\n" "# Vaikimisi: 4 (sinine)\n" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "Pööratud teksti värv (esiplaan)" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# Pööratud teksti esiplaani värv\n" "# Vaikimisi: 7 (valge)\n" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "Tekstiridade värv" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# Tekstiridade värv\n" "# Vaikimisi: -1 (vaikimisi värv)\n" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "Miniabiinfo värv" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# Miniabiinfo värv\n" "# Vaikimisi: 3 (pruun)\n" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "Abiinfo värv" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "# Abiinfo värv\n" "# Vaikimisi: -1 (vaikimisi värv)\n" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "Olekuteadete värv" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "# Viimasel real olevate teadete värv\n" "# Default: 6 (lilla)\n" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "Tsitaadi värv" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "# Tsitaadi värv\n" "# Vaikimisi: 2 (roheline)\n" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "Topelt tsiteeritud rea värv" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# Topelt tsiteeritud rea värv\n" "# Vaikimisi: 3 (pruun)\n" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "=>3 korda tsiteeritud rea värv" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# =>3 korda tsiteeritud rea värv\n" "# Vaikimisi: 4 (sinine)\n" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "Artikli päiseridade värv" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# Päiseridade värv\n" "# Vaikimisi: 2 (roheline)\n" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "Artikli tegelike päiseridade värv" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# Artikli tegelike päiseridade värv\n" "# Vaikimisi: 9 (helepunane)\n" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "Artikli teemarea värv" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# Artikli teema värv\n" "# Vaikimisi: 6 (lilla)\n" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "Vastuste arvu loenduri värv" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "# Vastuste arvu loenduri värv\n" "# Vaikimisi: 2 (roheline)\n" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "Saatja värv (From:)" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# Saatja värv (From:)\n" "# Vaikimisi: 2 (roheline)\n" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "Abiinfo/kirja teate värv" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# Abiinfo/kirja teate värv\n" "# Vaikimisi: 4 (sinine)\n" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "Signatuuri värv" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# Signatuuri värv\n" "# Vaikimisi: 4 (sinine)\n" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "Esiletõstetud URLide värv" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "# Esiletõstetud URLide värv\n" "# Vaikimisi: -1 (vaikimisi värv)\n" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "*tärnidega* esiletõstmise värv" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# *tärnidega* esiletõstmise värv\n" "# Vaikimisi: 11 (kollane)\n" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "_alakriipsudega_ esiletõstmise värv" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# _alakriipsudega_ esiletõstmise värv\n" "# Vaikimisi: 13 (heleroosa)\n" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "/Kaldkriipsude/ esiletõstmise värv" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# /Kaldkriipsude/ esiletõstmise värv\n" "# Vaikimisi: 14 (helelilla)\n" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "-Kriipsudega- esiletõstmise värv" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# -Kriipsudega- esiletõstmise värv\n" "# Vaikimisi: 12 (helesinine)\n" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "*tärnidega* esiletõstmise atribuut" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5596,56 +5638,56 @@ msgstr "# Sõnade esiletõstmise atribuut "# *tärnidega* esiletõstmise atribuut\n" "# Vaikimisi: 6 (paks)\n" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "_alakriipsudega_ esiletõstmise atr." -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "# _alakriipsudega_ esiletõstmise atribuut\n" "# Vaikimisi: 2 (parim esiletõstmine)\n" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "/Kaldkriipsude/ esiletõstmise atr." -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "# /Kaldkriipsude/ esiletõstmise atribuut\n" "# Vaikimisi: 5 (poolhele)\n" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "-Kriipsudega- esiletõstmise atr." -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "# Vaikimisi: 3 (pööratud video)\n" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "Teate kehas URL esiletõstmine" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "# Luba URLide esiletõstmine?\n" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "Sõnade esiletõstmine teate kehas" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "# Lubada sõnade esiletõstmine?\n" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "Mida näidata märgi asemel" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5659,55 +5701,55 @@ msgstr "# Kas näidata algavaid ja lõppev "# 1 - jah, näita märki\n" "# * 2 - trüki hoopis tühik\n" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Sisestage veerg, millelt lehitseja hakkab ridu murdma. seab." -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "Rea murdmise veerg lehitsejas" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "# Murra artikli read antud veerus\n" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "Liigu lugemata art-le ümber teemade" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "# Kui väärtus on ON, liigu lugemata artiklite otsingul ümber teemade\n" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "Sisestage oma e-posti aadress (ja oma nimi). seab." -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "E-posti aadress (ja teie nimi)" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "# Kasutaja e-posti aadress (ja nimi), kui ei ole kasutaja@host (nimi)\n" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "Näita toimetis tühja Followup-To" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "# Kui väärtus on ON, näita artikli toimetamisel tühja Followup-To rida\n" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Sisestage tee/! käsk/--none, et luua oma vaikimisi signatuur. seab." -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "Signatuuri loomiseks tee/käsk" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5718,51 +5760,51 @@ msgstr "# Postitamisel/vastamisel kasuta "# default_sigfile=!käsk käivitab käsu, mis genereerib signatuuri\n" "# default_sigfile=--none ära lisa signatuuri\n" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Signatuurile eelnevale reale \"-- \". lülitab, seab." -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "Lisa signatuuri ette \"-- \"" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "# Kui väärtus on ON, lisa signatuuri ette '\\n-- \\n'\n" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "Lisa artikli uuestipostitamisel signatuur. lülitab, seab." -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "Lisa uuestipostitusel signatuur" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "# Kui väärtus on ON, lisa uuestipostitatud artiklile signatuur\n" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "Sisestage tsitaadimärgid, %s või %S annab autori initsiaalid." -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "Tsiteerimise märgid" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "# Sümbolid, mida kasutada tsiteerimisel vastustes.\n" "# '_' asendatakse tühikuga ' ', %%s, %%S asendatakse autori initsiaalidega.\n" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "Käitumine tsiteerimisel" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5784,15 +5826,15 @@ msgstr "# Kuidas käsitleda vastamisel ts "# 6 = Tsiteeri allkirju, tsiteeri tühje ridu\n" "# 7 = Tihenda tsitaadid, tsiteeri allkirju, tsiteeri tühje ridu\n" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "%A Aadr. %D Kuup. %F Aadr.+Nimi %G Grupp %M Message-ID %N Nimi %C Eesnimi" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "Tsiteerimise rida vastamisel" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" @@ -5801,35 +5843,35 @@ msgstr "# Tsiteeriva rea vorming artikli "# %%A Aadress %%D Kuup %%F Aadr+Nimi %%G Grupp %%M Message-ID\n" "# %%N Täielik nimi %%C Eesnimi %%I Initsiaalid\n" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "Tsiteerimise rida ristpostitusel" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "Tsiteerimise rida kirjutamisel" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Kasuta User-Agent: päiserida. lülitab, seab." -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "Sisestage 'User-Agent:'-päis" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "# Kui väärtus on ON, lisa artikli päisesse User-Agent: rida\n" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "Sisestage MIME kooditabeli nimi (n. US-ASCII, ISO-8859-15, EUC-KR), seab." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "MM_CHARSET" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5845,27 +5887,27 @@ msgstr "# Lokaalselt toetatud kooditabel "# loetakse mm_charset väärtusest erinev kooditabel mitte-näidatavaks\n" "# ja näitamisel kasutatakse '?'.\n" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "MM_NETWORK_CHARSET" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# Postituste MIME (Content-Type) päises kasutatav kooditabel.\n" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "Kirjade kataloog" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "# Kirjade kataloog.\n" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "Kasuta artiklites MIME kodeerimist" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5877,15 +5919,15 @@ msgstr "# Vajadusel kirjade ja artiklite "# Base64 on kasulik enamuse 8 bitistele ida-aasia, kreeka ja vene\n" "# kooditabelitele, kus kasutatakse palju 8 bitiseid sümboleid.\n" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "Ärge muutke, kui te ei tea, mida teete. katkestab." -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "Kasuta artikli päises 8bit tähti" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" @@ -5895,28 +5937,28 @@ msgstr "# Kui väärtus on ON, 8bit sümbol "# 8bit sümbolid päistes kodeeritakse sõltumata selle parameetri väärtusest,\n" "# v.a. juhul, kui post_mime_encoding väärtus on samuti 8bit.\n" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Vaata töödeldud faile automaatselt lülitab, seab, " "katkestab." -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "Vaata töödeldud faile" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "# Kui on seatud, avatakse töödeldud fail vaatamiseks\n" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "Kasuta kirjades MIME kodeerimist" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "Kasuta kirja päises 8bit tähti" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -5931,25 +5973,25 @@ msgstr "# Kui väärtus on ON, 8bit sümbol "# et RFC 2822 keelab 8bit sümbolid kirjade päistes, seega selle\n" "# parameetri väärtus ON ei ole soovitatav kasutada.\n" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "Eemalda tühikud realõppudest" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "# Kui väärtus on ON, eemalda aeglaste terminalise töö kiirendamiseks\n" "# realõppudest tühikud.\n" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "Kui väärtus on ON, kasuta transliteratsiooni. lülitab, seab." -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "Transliteratsioon" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" @@ -5958,144 +6000,144 @@ msgstr "# Kui väärtus on ON, kasuta //TR "# ei saa esitada soovitavas kooditabelis, võib seda esitada kasutades\n" "# üht või enamat sarnast sümbolit.\n" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Saada kasutajale automaatselt koopia. lülitab, seab." -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "Saada automaatselt koopia" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "# Kui väärtus on ON, pane kasutaja nimi artikli saatmisel automaatselt\n" "# Cc: reale\n" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Saada automaatselt pimekoopia. lülitab, seab." -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "Saada automaatselt pimekoopia" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "# Kui väärtus on ON, pane kasutaja nimi artikli saatmisel automaatselt\n" "# Bcc: väljale\n" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "Sisestage aadressi komponendid, mille eest peaks hoiatama. seab." -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "Rämpsposti hoiatus aadressi osadele" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "# Komaga eraldatud aadresside komponentide loend, mille kasutamisel\n" "# tuleks kasutajat hoiatada.\n" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Sisestage kirje kehtivuse aeg päevades. seab." -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "Filtri kehtivus päevades" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "# lühiajalise filtri kehtivus päevades\n" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "Lisage postitatud artikkel filtrisse. lülitab, seab." -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "Lisage postitatud artikkel filtrile" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "# Kui väärtus on ON, lisa postitatud artiklid, mis alustavad uut teemat,\n" "# filtrile, mis märgistab vastuseid\n" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "Kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis." -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "Kirjade kataloog" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "# (-m) kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis\n" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "Salvesta artiklid pakettmoodis (-S)" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "# Kui väärtus on ON, artiklid salvestatakse pakettmoodis, kui käsureal\n" "# on kasutatud võtmeid salvestamiseks -S või saatmiseks -M, -N\n" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "Kataloog, kuhu te soovite artikleid salvestada." -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "Kataloog artiklite salvestamiseks" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "# Kataloog, kuhu salvestatakse artiklid/teemad\n" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Salvesta artiklid Archive-name: päiserea järgi. lülitab, seab." -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "Kasuta salvestamisel Archive-name:" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "# Kui väärtus on ON, salvestatakse artiklid/teemad, mis omavad päiserida\n" "# Archive-name:, automaatselt selle reaga määratud nime ja osa numbriga.\n" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Märgi salvestatud artiklid loetuks. lülitab, seab, " "katkestab." -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "Märgi salvestatud artiklid loetuks" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "# Kui väärtus on ON, märgi salvestatud artiklid loetuks\n" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Teosta salvestatud artiklitel järeltöötlemist (nt. lisade eraldamist)." -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "Salvestatud artikl. järeltöötlemine" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -6107,103 +6149,103 @@ msgstr "# Teosta salvestatud artiklite j "# 1 = jah\n" "# 2 = eralda ainult shelli arhiivid (shar)\n" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "Töötle ainult lugemata artikleid" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "# Kui väärtus on ON, salvesta/trüki/torusse/saada lugemata artikleid\n" "# (eeldatakse märgitud artikleid).\n" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "Trüki kõik või ainult osa päisest. lülitab, seab." -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "Trükkimisel trüki kõik päised" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "# Kui väärtus on ON, trüki kogu artikli päis, muidu ainult tähtsamad read\n" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "Programm koos argumentidega, mida kasutatakse artiklite/teemade trükkimiseks." -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "Trükikäsk koos võtmetega" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "# Programm koos argumentidega, mida kasutatakse artiklite/teemade " "trükkimiseks\n" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "Värskenda ekraani peale käske" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "# Kui väärtus on ON, värskendatakse alati peale teatud väliseid käske " "ekraani\n" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Käivita tekstitoimeti etteantud real. lülitab, seab, " "katkestab." -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "Käivita tekstitoimeti reanumbril" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "# Kui väärtus on ON, käivitatakse tekstitoimeti kursori paigutamisega\n" "# vastavale reale. Vastasel korral positsioneeritakse kursor esimesele reale\n" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "Kasutage %E toimeti kohal, %F failinime kohal, %N reanumbrina, seab." -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "Teie tekstitoimeti" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "# Tekstitoimeti rea formaat koos parameetritega\n" "# %%E Toimeti %%F Failinimi %%N Reanumber\n" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "Sisestage välise inews käsu nimi ja võtmed, sisemise valib --internal" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "Väline inews" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "# Kui on --internal, kasuta NNTP postitustel sisseehitatud inews käsku\n" "# muidu kasuta välist inews programmi\n" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "Kasutage %M programmi kohal, %S teema kohal, %T saaja kohal, %F failinime " "kohal, seab." -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "Teie e-posti käsk" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6214,11 +6256,11 @@ msgstr "# e-posti saatja käsurea formaat "# näiteks. kasutada saatjana elm programmi: elm -s \"%%S\" \"%%T\" < %%F\n" "# näiteks. elm interaktiivses moodis : elm -i %%F -s \"%%S\" \"%%T\"\n" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "Kasuta interaktiivset e-posti" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -6230,58 +6272,58 @@ msgstr "# Interaktiivne e-posti programm "# 1 = kasuta interaktiivset e-posti programmi koos päistega\n" "# 2 = kasuta interaktiivset e-posti programmi päisteta\n" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "Eemalda ~/.article peale postitust" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "# Kui väärtus on ON, kustuta ~/.article peale postitust.\n" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Failinimi postitatud artiklitele. seab. Nime puudumisel ei salvestata." -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "Failinimi postitatud artiklitele" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "# Failinimi, kus hoida kõiki postitusi (vaikimisi posted)\n" "# Kui nime pole, siis postitusi ei salvestata\n" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Hoia ebaõnnestunud postitused failis ~/dead.articles. lülitab ja " "seab." -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "Vigased artiklid ~/dead.articles" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "# Kui väärtus on ON, hoia ebaõnnestunud postitused failis ~/dead.articles\n" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Kas te soovite eemaldada tellimata grupid .newsrc failist" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "newsrcs ainult tellitud grupid" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# Kui väärtus on ON, eemalda tellimata grupid newsrc failist\n" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" -msgstr "Eemalda vigased grupid newsrcst" +msgstr "Eemalda olematud grupid" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" @@ -6293,56 +6335,56 @@ msgstr "# Mida teha olematute gruppidega "# 1 = Eemalda\n" "# 2 = Märgi valikuekraanil lipuga D\n" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "Sisestage aktiivsete faili lugemise intervall sekundites. seab." -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "Aktiivsete faili lugemise intervall" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "# Aktiivsete faili lugemise intervall (0 = ei loe)\n" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "Taasta automaatselt NNTP ühendus" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "# Kui väärtus on ON, ürita NNTP serveriga ühenduse katkemisel ühendust\n" "# automaatselt taastada\n" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Loo NNTP overview failidest lokaalne koopia. lülitab ja seab." -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "Puhverda NNTP overview lokaalselt" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "# Kui väärtus on ON, loo NNTP overview failidest lokaalsed koopiad.\n" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "Sisestage vormingusõne. seab, katkestab." -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "Kuupäevade esitamise vormingusõne" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "# Vormingusõne kuupäevade esitamiseks\n" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "Unikoodi normaliseerimise kuju" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -6358,11 +6400,11 @@ msgstr "# Unikoodi normaliseerimine\n" "# 3 = NFC\n" "# 4 = NFD\n" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "Renderda BiDi" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "# Kui väärtus on ON, renderdab tin mitmesuunalist (BiDi) teksti\n" @@ -6387,11 +6429,11 @@ msgid "\n" msgstr "\n" "Ühendus serveriga aegus, proovin taastada, katse %d\n" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "Taasühinen jooksva grupiga\n" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "Lugesin (%s)\n" @@ -6408,7 +6450,7 @@ msgstr "Saada viimane käsk uuesti (%s)\n #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "MOTD: " @@ -6417,14 +6459,14 @@ msgstr "MOTD: " msgid "couldn't expand %s\n" msgstr "ei saa laiendada %s\n" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "Rida %d on pikem, kui 998 sümbolit ja tuleks poolitada, aga kodeering\n" "pole ei %s ega %s\n" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" @@ -6433,14 +6475,14 @@ msgstr "Rida %d on pikem, kui 998 sümbol "on %s ja MIME_BREAK_LONG_LINES pole seatud või postitamine ei sisalda\n" "8 bitiseid sümboleid ja seetõttu poolitamist ei toimu\n" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "Rida %d on pikem, kui 998 sümbolit ja tuleks poolitada, aga kodeering\n" "pole %s\n" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "Postitan: %.*s ..." @@ -6482,7 +6524,7 @@ msgstr "See teade on koostatud kasutades "vormingut kasutama ja järgnev tekst võib olla kummaline.\n" "\n" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "baiti" Binary files tin-1.9.1/po/fr.gmo and tin-1.9.2/po/fr.gmo differ diff -Nurp tin-1.9.1/po/fr.po tin-1.9.2/po/fr.po --- tin-1.9.1/po/fr.po 2006-04-09 17:55:09.000000000 +0200 +++ tin-1.9.2/po/fr.po 2007-02-01 14:02:44.296669302 +0100 @@ -4,7 +4,7 @@ msgid "" msgstr "Project-Id-Version: 1.8.0\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2004-11-17 00:50+0100\n" "Last-Translator: Matt Anton \n" @@ -12,7 +12,7 @@ msgstr "Project-Id-Version: 1.8.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "%d Mauvais overview (%d champs) '%s'" @@ -154,139 +154,139 @@ msgstr "# sort_art_type=NUM\n" msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=NUM\n" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=NUM\n" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=TERME (pe. talk.*)\n" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=NUM\n" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=subject (casse sensible) 1=subject (ignore la casse)\n" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=from (casse sensible) 3=from (ignore la casse)\n" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "# 4=msgid 5=lines\n" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=TERME\n" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "# x_comment_to=ON/OFF\n" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "# fcc=TERME (pe. =mailbox)\n" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "# mime_forward=ON/OFF\n" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=encodage_supporté" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=TERME (défaut est US-ASCII)\n" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "#\n" "# Notez que placer les entrées générales (portée globale) en premier\n" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# est préférable, suivies des entrées spécifiques aux groupes.\n" "#\n" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "# inclure des en-têtes supplémentaires\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "# dans *sources* choisir le type shar en post-traitement\n" # TRANSLATION OUTDATED -#: src/attrib.c:768 +#: src/attrib.c:771 #, fuzzy, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "# dans *binaries* faire traitement complet,\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "# effaçant les fichiers temporaires et utiliser Followup-To: poster\n" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(inconnu)" @@ -651,7 +651,7 @@ msgstr "Création du fichier active des g msgid "Creating newsrc file...\n" msgstr "Création du fichier newsrc...\n" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Défaut" @@ -1707,7 +1707,7 @@ msgstr "déplacer le groupe sélectionné" msgid "choose next group with unread news" msgstr "choisir le groupe suivant ayant articles non lus" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "quitter" @@ -2059,46 +2059,42 @@ msgid "Lines %s " msgstr "%s lignes " #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "l'en-tête 'Message-ID:'" - -#: src/lang.c:479 msgid "Mail" msgstr "Envoyer" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "bàl" -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Envoyer article(s) à [%.*s] > " -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "Envoi de l'historique à %s\n" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "Envoi d'un rapport de bug..." -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "Signaler LE BUG à %s ?" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "Envoyé" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "Envoi à %s..." -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" @@ -2109,282 +2105,296 @@ msgstr "# [Envoyer/Enregistrer] fichier "# Le 4ème champ est le répertoire racine utilisé\n" "# (p.e. ~/Mail ou ~/News)\n" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "%s marqué comme non lu" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "%d marqué(s) sur %d sélectionné(s) %s comme lu(s)" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "Marquer tous les articles comme lus%s ?" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "Marquer %s=art. marqués, %s=article actuel, %s=quitter : " -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "Marquer le groupe %s comme lu ?" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "Marquer le fil comme lu%s ?" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "Marquer %s=art./fils marqués, %s=fil actuel, %s=quitter : " -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "%s groupes correspondants..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=voir 'n'; %s=non lu suivant; %s=rechercher; %s=filtrer/sél." -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=rech. auteur; %s=tout lu; %s=bas; %s=haut; %s=marquer lu; %s=voir fil" -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=haut; %s=bas; %s=haut de page; %s=bas de page; %s=haut; %s=bas" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=recherche avant; %s=recherche arrière; %s=quitter" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=rech. auteur; %s=rech. corps; %s=tout marquer lu; %s=suivi; %s=marquer lu" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "=voir 'n'; %s=non lu suivant; %s,%s=rechercher; %s=tout lu" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=bas; %s=haut; %s=aide; %s=déplacer; %s=quitter; %s=voir lu/non lu" -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=abonner; %s=sous-critère; %s=désabonner; %s=critère; %s=liste des groupes" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "=voir 'n'; %s=non lu suivant; %s=tout lu; %s=basculer l'affichage" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=aide; %s=bas; %s=haut; %s=quitter; %s=marquer; %s=marquer non lu" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "-- Suite --" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "Déplacement de %s..." +# TRANSLATION MISSING +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "l'en-tête 'Message-ID:'" + +# TRANSLATION MISSING #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr ", nom : " -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "Aller dans le groupe [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "groupes" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "Placer %s dans la liste des groupes (1,2,..,$) [%d]> " -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "groupe" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "Encore essayer et enregistrer le newsrc ?" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "Attention : Aucuns groupes n'a été écrits dans le newsrc. Enregistrement " "annulé." -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "le newsrc a été enregistré avec succès.\n" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "-- Réponse suivante --" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "Mot de passe NNTP introuvable pour %s" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "Non " -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "*** Aucun article ***" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "Aucun article n'a été posté" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "*** Aucune description ***" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "Pas de nom de fichier" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "Pas de groupe" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "*** Aucun groupe ***" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "Plus de groupes à lire" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "Aucun dernier message" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "Aucune adresse email" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "Aucun article marqué à enregistrer" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "Aucun résultat" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "Plus de groupes" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "Aucun groupe" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "Aucun article non lu suivant" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "Aucun groupe précédent" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "Aucun article non lu précédent" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "Aucune réponse" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "Aucune réponse à afficher dans le fil actuel" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "Aucun terme à rechercher" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "Aucun sujet" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s: Terminal doit avoir la fonction clear to end-of-line (ce)\n" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s: Terminal doit avoir la fonction clear to end-of-screen (cd)\n" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminal doit avoir la fonction clearscreen (cl)\n" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Terminal doit avoir la fonction cursor motion (cm)\n" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s: la variable TERM doit être utilisée pour utiliser les fonctions\n" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "Visualiseur introuvable pour %s/%s\n" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "Groupe inexistant sur ce serveur" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "Groupe %s introuvable dans le fichier active" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "c)réer, utiliser a)utre nom, utiliser .newsrc par d)éfaut, q)uitter tin : " -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "utiliser a)utre nom, utiliser .newsrc par d)éfaut, q)uitter tin : " -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2412,40 +2422,40 @@ msgstr "# Serveur NNTP -> tableau de cor "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "Actuel" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Option non activée. Recompilez avec %s." -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "Menu Options" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Erreur dans la regex : %s à %d '%s'" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Erreur dans la regex : erreur pcre interne %d" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Erreur dans la regex : study - erreur pcre interne %s" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "Postage du suivi..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" @@ -2453,277 +2463,282 @@ msgstr "Une erreur est survenue lors du "cette erreur est temporaire ou alors corrigeable, vous pouvez enregistrer\n" "l'article comme brouillon et le réutiliser plus tard grâce à la commande ^O.\n" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "Historique des articles postés" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Poster dans groupe(s) [%s]> " -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "-- post-traitement lancé --" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "-- post-traitement terminé --" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "Poster le sujet [%s] > " -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# Sommaire des messages envoyés/postés visible par la commande 'W' depuis " "tin.\n" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "Postage de l'article..." -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "Poster les brouillons [%%s] ? (%s/%s/%s/%s/%s) : " -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "%s sélectionné" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "%s marqué" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "%s non marqué" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "Traitement des emails enregistrés marqués pour effacement." -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "Traitement des articles enregistrés marqués pour effacement." -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "Accepter le Suivi ? %s=poster, %s=ignorer, %s=quitter : " -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "Article inchangé, annuler l'envoi ?" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Voulez-vous voir les brouillons (%d) ?" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "Ajouter rapidement un filtre ?" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "Ajouter rapidement une règle ?" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "Voulez-vous réellement quitter ?" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=éditer message d'annulation, %s=quitter, %s=effacer (annuler) [%%s] : " -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "Vous avez des articles marqués dans ce groupe - quitter quand même ?" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=brouillon : " -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=quitter, %s=éditer, %s=enregistrer le filtre : " -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=quitter %s=éditer %s=enregistrer la règle : " -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "Voulez-vous réellement quitter sans enregistrer votre configuration ?" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Champ invalide - '0-9.$' pe. 1-$ est valide" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "Voulez-vous annuler cette opération ?" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "Voulez-vous quitter tin immédiatement ?" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "Lire la réponse> " -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "Lecture ('q' pour quitter)..." -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "Lecture de %sarticles..." -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "Lecture du fichier %sattributes...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "Lecture du fichier %sconfig...\n" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "Lecture du fichier filter...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "Lecture de %s groupes..." -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "Lecture du fichier d'historique...\n" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "Lecture du fichier keymap...\n" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "Lecture des groupes depuis le fichier active... " -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "Lecture des groupes depuis le fichier newsrc... " -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "Lecture du fichier newsgroups... " -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "Lecture du fichier newsrc..." -#: src/lang.c:620 +#: src/lang.c:621 +#, fuzzy +msgid "References: line " +msgstr "l'en-tête 'References:'" + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "(%d:%02d restant)" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "Effacement du groupe corrompu %s." -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "Erreur : renommer %s à %s" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "Répondre à l'auteur..." -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "Reposter" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "Repostage de l'article..." -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Reposter article(s) dans groupe(s) [%s]> " -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "Réinitialiser newsrc ?" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "Les réponses ont été redirigées vers les groupes suivants" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Les réponses ont été redirigées à l'auteur. %s=mail, %s=poster, %s=quitter : " -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "Réponse %4d sur %4d" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "Appuyez sur pour continuer..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr " De : [%s] (o/n) : " -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "Nombre de lignes (num) : " -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "Créer une règle" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr " MID : [%s] (t/d/a/n) : " -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "Règle s'appliquant à : " -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "Sujet : [%s] (o/n) : " -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "Texte ou terme : " -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "Durée de la règle : " -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2741,223 +2756,223 @@ msgstr "# Fichier de configuration serve "# Enfin, ne touchez pas à ce fichier si vous ne savez pas quoi y faire.\n" "############################################################################\n" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "Afficher uniquement les groupes non lus" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "l'en-tête 'Subject:' (ignorer la casse)" -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "l'en-tête 'Subject:' (casse sensible)" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "Enregistrer" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "Enregistrer '%s' (%s/%s) ?" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "Enregistrer la configuration avant de continuer ?" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "Enregistrer sous le nom de fichier > " -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "Enregistré" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d non lu (%4d sél.) %s dans %s\n" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "Enregistrement de %s...\n" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "Rien n'a été enregistré" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s de %d %s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s enregistré sous %s%s --" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s enregistré sous %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "Enregistrement..." -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "%s : Échec de l'initialisation de l'écran" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "%s : l'écran est trop petit\n" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "l'écran est trop petit, %s quitte\n" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "Recherche arrière [%s] > " -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "Rechercher dans le corps [%s] > " -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "Recherche avant [%s] > " -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "Recherche..." -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Recherche article %d sur %d ('q' pour annuler)..." -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "Sélectionner l'article > " -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Choisir un numéro ou utiliser les flèches puis . 'q' pour quitter." -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "Sélectionner le groupe > " -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Entrez le critère de sélection [%s] > " -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "Sélectionner le fil > " -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s %s %s (\"%s\") [%s]: envoi d'un rapport de bug DÉTAILLÉ à %s\n" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "fichier active des serveurs" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Déplacement dans nouveaux groupes impossible. Abonnez-vous d'abord..." -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "Démarrage : (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "Visualisation du fil (%d sur %d)" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "Fil (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "Entrer un caractère joker comme critère > " -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "Abonné à %d groupes" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "Abonné à %s" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "Abonnement... " -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "Reposter ou remplacer le(s) article(s) [%%s]? (%s/%s/%s) : " -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Remplacer le(s) article(s) du(es) groupe(s) [%s] > " -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "Remplacement de l'article..." -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "Arrêté. Tapez 'fg' pour relancer %s\n" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "%d jours" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "TeX " -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "# Termes action/prompt par défaut\n" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -2975,267 +2990,267 @@ msgstr "# Réglages par défaut pour les f "# case=ON/OFF ON=filtre sensible à la casse OFF=filtre insensible\n" "# expire=ON/OFF ON=durée d'après default_filter_days OFF=n'expire jamais\n" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "# Si ON, affiche le sujet actuel ou la description du groupe dans la " "dernière\n" "# ligne\n" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# Info sur l'hôte & l'heure utilisées pour détecter les nouveaux groupes (ne " "pas toucher)\n" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "Rien de neuf\n" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "Fil" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "Commandes pour fil" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "Fil désélectionné" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "Fil sélectionné" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "fils" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "Champ du fil" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "fil" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr " Fil %4s sur %4s" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "Regroupement des articles..." -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "(Dés)activer surbrillance %s" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "(Dés)activer codage rot13" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "(Dés)activer codage TeX Allemand %s" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "(Dés)activer largeur de tabulation à %d" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d essaye de déverrouiller %s" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "%d essaye de verrouiller %s" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr " h=aide\n" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "Illimitée" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "Terme joker pour se désabonner > " -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "Erreur lors du décodage de %s : %s" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "Pas de fin." -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "%s décodé avec succès." -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[-- %s/%s, %sfichier uuencodé, %d lignes, nom : %s --]\n" "\n" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "non lu" -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "désabonné de %d groupes" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "Désabonné de %s" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "Désabonnement... " -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "Dégroupement des articles..." -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "Mis à jour" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "Rafraîchissement" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "Ouverture de %s\n" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "Plus d'URL dans cet article" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "Utiliser le programme d'affichage MIME pour ce message ?" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr " -c marquer tous les articles lus dans les groupes abonnés (en tâche " "de fond)" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr " -Z retourne un statut indiquant s'il y a nouveaux articles (en tâche " "de fond)" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr " -q ne pas vérifier s'il y a des nouveaux groupes" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr " -X ne pas enregistrer de fichiers à la fermeture" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr " -d ne pas afficher les descriptions des groupes" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr " -G nombre d'articles par groupe limite" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr " -H aide à propos de %s" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr " -h ce message d'aide" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I rép. répertoire du fichier index [défaut=%s]" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr " -u màj des fichiers index (en tâche de fond)" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m rép. répertoire des bàl [défaut=%s]" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Envoyez par mail vos rapports de bugs/suggestions à %s" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr " -N envoyer toute réponse à vos articles (en tâche de fond)" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr " -M util. envoyer tout nouvel article à une personne (en tâche de fond)" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f fich. abonné au fichier groupes [défaut=%s]" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr " -x mode postage OFF" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr " -w poster un article puis quitter" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr " -o poster tous les brouillons puis quitter" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr " -r lire les articles depuis le serveur NNTP par défaut" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr " -R lire les articles enregistrés via l'option -S" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s rép. répertoire où enregistrer les articles [défaut=%s]" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr " -S enregistrer tout nouvel article pour lecture différée (en tâche de " "fond)" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr " -z lancer si articles non lus" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3243,37 +3258,42 @@ msgid "A Usenet reader.\n" msgstr "Un lecteur UseNet.\n" "Usage : %s [options] [groupe[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr " -v sortie détaillée pour options en tâche de fond" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr " -V afficher infos date & version" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s utile seulement sans opérations en tâche de fond\n" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s utile seulement pour opérations en tâche de fond\n" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d expiré (0 - %d). Remis à 0" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "Vue '%s' (%s/%s) ?" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3283,26 +3303,26 @@ msgstr "\n" "dépassant :\n" "%-100s\n" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Attention : article inchangé après son édition\n" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Attention : \"Subject:\" contient que des espaces.\n" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "\n" "Attention : \"Subject:\" commence par \"Re: \" mais il n'y a pas de " "\"References:\".\n" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3310,7 +3330,7 @@ msgstr "\n" "Attention : L'article a \"References:\" mais \"Subject:\" ne commence\n" " avec \"Re: \" et ne contient pas \"(was:\".\n" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3332,7 +3352,7 @@ msgstr "Lisez ceci attentivement !\n" "Voici l'article que vous vous apprêtez à effacer :\n" "\n" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3344,7 +3364,7 @@ msgstr "\n" " votre article. Si une signature y est ajoutée par cet inews,\n" " elle ne sera pas encodée correctement.\n" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3357,7 +3377,7 @@ msgstr "\n" "Certaines valeurs dans votre fichier %s ont changé !\n" "Lisez le fichier WHATSNEW, etc...\n" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3369,7 +3389,7 @@ msgstr "\n" "Certaines valeurs dans votre fichier %s peuvent être ignorées, d'autres\n" "ont peut-être changées !\n" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3382,19 +3402,19 @@ msgstr "Attention : tin a modifié quelqu "lors de cette session, cela indique une erreur et vous devriez sauvegarder\n" "votre %s avant de relancer tin !\n" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "\n" "Attention : %d lignes '-- \\n' trouvées, cela peut prêter à confusion.\n" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Attention : Seul %d sur %d articles ont été enregistrés" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3409,50 +3429,50 @@ msgstr "\n" "d'être\n" " le plus court possible.\n" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "Attention : cette email peut contenir un piège à spam. %s=continuer, %" "s=annuler ?" -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "\n" "Attention : Les signatures doivent commencer avec '-- \\n' et non par '-- " "\\n'.\n" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "Écriture du fichier attributes..." -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "%d Réponses" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "%d %s ajouté(s)" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "Aucuns groupes non abonnés à afficher" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "Afficher uniquement les groupes abonnés" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "Oui " -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr " Nouveau mail\n" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3471,11 +3491,11 @@ msgstr "\n" " problème, ou bien changer la valeur de MM_NETWORK_CHARSET\n" " via le M)enu.\n" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D mode debug 1=NNTP 2=TOUS" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3502,11 +3522,11 @@ msgstr "Lisez ceci attentivement !\n" "Voici l'article que vous vous apprêtez a effacer :\n" "\n" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "(dés)activer la couleur" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3549,44 +3569,44 @@ msgstr "# Changer la couleur de plusieur "# 15 = blanc gras\n" "\n" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr " -a change la couleur" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Erreur : Suivi positionné sur plus d'un groupe !\n" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Erreur : multi-postage vers %d groupes et pas de ligne Followup-To !\n" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "Erreur : \"%s\" n'est pas un groupe valide !\n" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Attention : Suivi positionné sur plus d'un groupe !\n" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Attention : multi-postage vers %d groupes et aucun suivi !\n" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" @@ -3595,315 +3615,315 @@ msgstr "\n" " pas apparaître dans ce groupe !\n" "\n" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "\n" "Attention : \"%s\" n'est pas un groupe valide !\n" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "%d fichiers des %d articles écrits avec succès. %d %s est survenu." -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "Parties manquantes." -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "Pas de début." -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "Pas de données." -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "Erreur inconnue." -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tSomme de contrôle de %s (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "Lecture du fichier active mail... " -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "Lecture du fichier mailgroups... " -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "effectuer des opérations PGP sur l'article" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "Ajouter les clé(s) au cercle public ?" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=encoder, %s=signer, %s=les deux, %s=quitter : " -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=signer, %s=sig. & inclure clé publique, %s=quitter : " -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP n'a pas été configuré (ouverture de %s impossible)" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "Article non signé et pas de clés publiques trouvées" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=pgp, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=pgp, %s=envoyer [%%s] : " -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=pgp, %s=menu, %s=poster, %s=brouillon [%%" "s]: " -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=pgp, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=quitter, %s=éditer, %s=pgp, %s=envoyer [%%s] : " -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=quitter, %s=éditer, %s=pgp, %s=menu, %s=poster, %s=brouillon [%%s] : " -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=envoyer [%%s] : " -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=menu, %s=poster, %s=brouillon [%%s] : " -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=quitter, %s=éditer, %s=envoyer [%%s] : " -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=quitter, %s=éditer, %s=menu, %s=poster, %s=brouillon [%%s]: " -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "Activez 'cache_overview_files' pour accélérer les choses.\n" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "Tin utilisera à la place un index local.\n" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "Nom du serveur NNTP introuvable" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "Connexion à %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "Déconnexion du serveur...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Nom de groupe erroné dans la réponse de la cmd GROUP, %s pour %s" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "Échec de la connexion au serveur NNTP %s. Fermeture..." -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "205 Fermeture de la connexion" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "Votre serveur ne supporte pas la commande NNTP XOVER ou OVER.\n" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "Connexion au serveur de nouvelles expirée. Se reconnecter ?" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "Mettez le nom du serveur dans le fichier %s,\n" "ou utilisez la variable d'environnement NNTPSERVER" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr " -A force l'authentication à la connexion" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv lire depuis le serveur NNTP serv [défaut=%s]" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port utiliser port comme port NNTP [défaut=%d]" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr " -Q démarrage rapide. Idem que -npd" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l utilise seulement LIST plutôt que GROUP (-n)" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n lire seulement groupes abonnés du .newsrc depuis le serveur NNTP" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp : Service inconnu.\n" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "\n" "problème de socket ou de connexion\n" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Connexion à %s : " -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "Abandon...\n" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "Votre serveur n'a pas d'Xref: dans son information XOVER.\n" "Tin essayera d'utiliser XHDR XREF à la place (plus lent).\n" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "Votre serveur n'a pas d'Xref: dans son information XOVER.\n" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "Ouverture de %s impossible. Essayez %s -r pour lire via NNTP.\n" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr " -Q démarrage rapide. Idem que -qd" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr " -l lire seulement le fichier active plutôt que le spool (-n)" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n lire seulement groupes abonnés du .newsrc depuis le spool" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Votre serveur n'a pas d'Xref: dans ses fichiers NOV.\n" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "Le postage avec l'inews externe à échoué. Utiliser l'inews intégré ?" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "Ca a marché ! Devrais-je toujours utiliser mon inews intégré à présent ?" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "%d %s imprimé" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "envoyer article/fil/sél./articles marqués à l'imprimante" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "Imprimer" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "Impression..." -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "passer article/fil/sél./articles marqués à une commande" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "Aucune commande" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "Passer (pipe)" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Passer à la commande [%.*s] > " -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "Passage..." -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "Passage non activé." -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3916,7 +3936,7 @@ msgstr "\n" " du contenu. Utilisez une virgule (,) pour séparer de multiples\n" " noms de groupes.\n" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3927,7 +3947,7 @@ msgstr "\n" " Comme la ligne ne contient pas d'espace, ce n'est pas autorisé.\n" " Inscrivez svp tous les groupes sur une seule ligne.\n" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3940,7 +3960,7 @@ msgstr "\n" " Pour éviter les problèmes, indiquez tous les groupes sur une\n" " seule ligne.\n" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" @@ -3948,7 +3968,7 @@ msgstr "\n" "Attention : La ligne \"%s:\" contient un ou des espaces qui DOIVENT\n" " être enlevés.\n" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3982,509 +4002,534 @@ msgstr "\n" "simples\n" " règles, pratiquement toutes les personnes ignoreront vos articles.\n" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "accéder à un shell" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "Commande shell (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "Commande shell [%s] > " -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s : Entrée pour TERM introuvable\n" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Groupe %.*s ('q' pour quitter)..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "Groupe %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "Service indisponible\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=pipe; %s=mail; %s=impr.; %s=quitter; %s=voir lu/non lu; %s=enreg.; %" "s=marquer; %s=poster" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=impr.; %s=quitter; %s=répondre; %s=enreg.; %s=marquer; %" "s=poster" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=imprimer; %s=quitter; %s=voir lu/non lu; %s=enregistrer; %" "s=marquer; %s=poster" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=imprimer; %s=quitter; %s=répondre; %s=enregistrer; %s=marquer; %" "s=poster" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=quitter; %s=voir lu/non lu; %s=enregistrer; %s=marquer; %" "s=poster" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=quitter; %s=répondre; %s=enregistrer; %s=marquer; %" "s=poster" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=quitter; %s=voir lu/non lu; %s=enregistrer; %s=marquer; %s=poster" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=quitter; %s=répondre; %s=enregistrer; %s=marquer; %s=poster" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "Le terminal ne supporte pas les couleurs" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "Essai %s" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "Aucun" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "Sujet" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "Références" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "Sujet et Références" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "Sujet multiparties" # TRANSLATION MISSING -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "Non" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "Oui" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "Tout masquer" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "Adresse" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "Nom complet" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "Adresse et Nom" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "Max" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "Addition" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "Moyenne" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "Lignes" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "Score" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "Lignes & Score" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "Noir" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "Rouge" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "Vert" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "Marron" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "Bleu" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "Rose" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "Cyan" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "Blanc" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Gris" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "Rouge gras" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "Vert gras" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "Jaune" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "Bleu gras" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "Rose gras" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "Cyan gras" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "Blanc gras" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "Rien" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "Marque" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "Espace" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "Normal" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "Meilleure surbrillance" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "Souligné" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "Vidéo inversée" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "Clignotement" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "Moins lumineux" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "Gras" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "aucun" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "commandes" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "sélection" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "commandes & quitter" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "commandes & sélection" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "quitter & sélection" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "commandes, quitter & sélection" -#: src/lang.c:1222 +# TRANSLATION MISSING +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "Archive shell" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "Subject : (descendant)" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "Subject : (ascendant)" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "From: (descendant)" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "From: (ascendant)" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "Date: (descendant)" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "Date: (ascendant)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "Score (descendant)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "Score (ascendant)" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "Lines: (descendant)" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "Lines: (ascendant)" -#: src/lang.c:1248 +# TRANSLATION MISSING +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "Toujours garder" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "Toujours effacer" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "Marquer avec un D dans la vue sélection" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "Filtrer uniquement les articles non lus" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "Filtrer tous les articles & afficher avec un K" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "Filtrer tous les articles et ne jamais afficher" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "Rien de spécial" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "Citations compressées" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "Citer les signatures" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "Compresser les citations, citer les signatures" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "Citer les lignes vides" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "Compresser les citations, citer les lignes vides" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "Citer les signatures & les lignes vides" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "Citations compr., signatures et lignes vides citées" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "non" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "avec les en-têtes" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "sans les en-têtes" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "NFKC" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "NFKD" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "NFC" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "NFD" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "Options d'affichage" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "Options des couleurs" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "Options des articles" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "Options de postage/messagerie" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "Options d'enregistrement/d'impression" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "Options avancées" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "Options de filtrage" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr " change, valide, annule." -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "Afficher le menu & l'intitulé du postage" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "# Si ON, affiche un mini menu des commandes utiles pour chaque\n" "# niveaux et affiche les détails après la composition d'un article\n" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Afficher une brève description pour chaque groupe. change & " "valide." -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "Voir description de chaque groupe" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "# Si ON, affiche une description du groupe après son nom dans\n" "# la vue de sélection des groupes\n" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Affiche le sujet & l'auteur dans le menu groupe. change & " "valide." -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "Dans vue groupe, voir auteur par" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4498,33 +4543,33 @@ msgstr "# Partie du champ from à affiche "# * 2 = nom complet\n" "# 3 les deux\n" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Affiche -> ou une barre de sélection. change & valide." -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "Afficher -> plutôt qu'une barre" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "# Si ON, utilise -> sinon barre en surbrillance pour la sélection\n" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "Vidéo inversée pour les en-têtes" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "# Si ON, utilise la vidéo inversée pour les en-têtes dans les différentes\n" "# vues\n" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "Regrouper les articles par" # TRANSLATION OUTDATED -#: src/lang.c:1412 +#: src/lang.c:1426 #, fuzzy msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -4543,17 +4588,17 @@ msgstr "# Regrouper les articles par...\ "# 4 = Sujet multipartie\n" # TRANSLATION MISSING -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" # TRANSLATION MISSING -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4566,11 +4611,11 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "Score d'un fil" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4582,15 +4627,15 @@ msgstr "# Regrouper les scores\n" "# 1 = somme\n" "# 2 = moyenne\n" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Trie les articles d'après un en-tête. change & valide." -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "Trier les articles par" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4618,64 +4663,68 @@ msgstr "# Trie les article par...\n" "# 9 = Lignes descendant\n" "# 10 = Lignes ascendant)\n" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Trier les fils par Rien ou Score. change & valide." -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "Trier les fils par" -#: src/lang.c:1466 +# TRANSLATION OUTDATED +#: src/lang.c:1480 +#, fuzzy msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "# Trier les fils par...\n" "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n" "# 0 = aucun\n" "# * 1 = Score descendant\n" "# 2 = Score ascendant\n" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Place le curseur sur le 1er article non lu. change & valide." -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "Aller au 1er article non lu du groupe" -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# Si ON, place le curseur sur le 1er article non lu sinon sur le dernier\n" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Affiche tous les articles ou seulement ceux non lus. change & " " valide." -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "Afficher articles non lus seulement" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "# Si ON, affiche seulement les articles non lus sinon les affiche tous.\n" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "Voir groupes avec articles non lus" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "# Si ON, affiche seulement les groupes ayant des articles non lus.\n" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "Filtrer quel article" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4687,200 +4736,177 @@ msgstr "# Filtrer quels articles\n" "# 1 = filtrer tous les articles et les marquer avec un K dans les fils\n" "# 2 = filtrer tous les articles et ne pas les afficher\n" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "Tab va au prochain article non lu" - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "# Si ON, la touche TAB ira au prochain article non lu directement depuis le\n" - "# visualiseur d'article\n" - -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "Naviguer avec ira au prochain article non lu." - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "Espace va au prochain article non lu" +# TRANSLATION MISSING +#: src/lang.c:1519 +msgid "Go to the next unread article with" +msgstr "" -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "# Si ON, ESPACE ira au prochain article non lu dans le visualiseur d'article\n" - "# lorsque la fin d'un article sera atteinte (pager style rn)\n" - -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "Naviguer avec / ira au prochain article non lu." - -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "PgDn va au prochain article non lu" - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "# Si ON, les touches PGDN ou BAS iront au prochain article non lu\n" - "# lorsque la fin d'un article sera atteinte\n" +# TRANSLATION MISSING +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" +msgstr "" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "Lister le fil via la flèche droite" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "# Si ON, listera automatiquement le fil lors de l'utilisation de la flèche\n" "# droite.\n" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Caractère indiquant les articles effacés. valide, annule." -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "Caractère pour articles effacés" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article a été supprimé (défaut 'D')\n" "# _ est transformé en ' '\n" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Caractère indiquant les articles inclus. valide, annule." -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "Caractère pour articles non inclus" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article est inclus (défaut '#')\n" "# _ est transformé en ' '\n" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Caractère indiquant que l'article sera retourné. valide, " "annule." -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "Caractère pour articles retournés" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article sera retourné (défaut '#')\n" "# _ est transformé en ' '\n" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Caractère indiquant les articles sélectionnés. valide, annule." -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "Caractère pour articles sélect." -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article fut sélectionné (defaut '*')\n" "# _est transformé en ' '\n" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Caractère indiquant les articles récents. valide, annule." -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "Caractère pour articles récents" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article est récent (defaut 'o')\n" "# _est transformé en ' '\n" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Caractère indiquant les articles non lus. valide, annule." -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "Caractère pour articles non lus" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article est non lu (defaut '+')\n" "# _est transformé en ' '\n" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "Caractère indiquant les articles lus. valide, annule." -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "Caractère pour articles lus" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article a été lu (defaut ' ')\n" "# _est transformé en ' '\n" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Caractère indiquant les articles filtrés. valide, annule." -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "Caractère pour articles filtrés" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article a été filtré (defaut 'K')\n" "# kill_level doit être choisi en conséquence, _ est transformé en ' '\n" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Caractère indiquant les articles lus et sélectionnés. valide, " "annule." -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "Caractère pour articles sélectionnés lus" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "# Caractère utilisé pour indiquer qu'un article était sélectionné avec\n" "# d'être lu (defaut ':')\n" "# kill_level doit être choisi en conséquence, _ est transformé en ' '\n" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Largeur max. à afficher des noms des groupes. valide." -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "Largeur max. des noms des groupes" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Largeur maximum à afficher des noms des groupes.\n" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "Afficher dans les différentes vues" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4894,17 +4920,17 @@ msgstr "# Quelles informations doivent ê "# 2 = score\n" "# 3 = lignes & score\n" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 = défilement page par page, -1 = afficher dernière ligne dans page " "suivante, -2 = demi-page" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "Vitesse de défilement dans le pager" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4920,29 +4946,29 @@ msgstr "# Type du défilement lors de la "# * 1 = ligne par ligne\n" "# 2 ou plus = défiler 2 lignes par 2 ou plus (seulement dans le pager)\n" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "Affiche les signatures. change & valide." -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "Afficher les signatures" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "# Si OFF ne pas afficher les signatures lors de la visualisation des " "articles.\n" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Afficher les archives uue comme PJ marquées. change & " "valide." -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "Afficher donnée uue comme PJ" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4958,30 +4984,30 @@ msgstr "# Prise en charge des données uu "# 2 = masquer, comme pour l'option 1, mais toute ligne qui ressemble à des\n" "# données uuencode sera condensée en une seule ligne.\n" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "Décode les umlauts Allemands de type TeX en ISO. change & " "valide." -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "Afficher \"a comme Umlaut-a" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "# Si ON, convertit les umlauts Allemands de type TeX en codes ISO\n" "# et affiche \"a comme Umlaut-a, etc.\n" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "Liste des en-têtes, séparés par des espaces" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "Afficher ces en-têtes (ou *)" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -4997,11 +5023,11 @@ msgstr "# Quels en-têtes voulez-vous voi "# en-têtes en les délimitant avec des espaces. Ne rien définir, désactive\n" "# cette option.\n" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "Ne pas afficher ces en-têtes" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -5020,29 +5046,29 @@ msgstr "# Comme l'option 'news_headers_t "# news_headers_to_not_display=X-Alan X-Pape\n" "# Ne rien définir, désactive cette option.\n" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "Voulez-vous activer la prise en charge automatique des articles multipart/" "alternative ?" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "Ignorer parties multipart/alter." -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "# Si ON, enlève automatiquement les messages multipart/alternative\n" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "Une expression régulière pour déterminer quelles lignes afficher dans " "col_quote." -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "Regex pour afficher les citations" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5050,16 +5076,16 @@ msgstr "# Une expression régulière qui p "# Les citations sont affichées dans col_quote. Si vous laissez ce champ\n" "# vide, tin utilisera une valeur incluse par défaut.\n" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "Une expression régulière pour déterminer quelles lignes afficher dans " "col_quote2." -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "Regex pour afficher le 2nd niveau" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5067,16 +5093,16 @@ msgstr "# Une expression régulière qui p "# second niveau. Ces citations sont affichées dans col_quote2. Si vous\n" "# laissez ce champ vide, tin utilisera une valeur incluse par défaut.\n" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "Une expression régulière pour déterminer quelles lignes afficher dans " "col_quote3." -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "Regex pour afficher niveau >= 3" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5086,16 +5112,16 @@ msgstr "# Une expression régulière qui p "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par " "défaut.\n" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "Une expression régulière pour déterminer quels mots afficher dans " "col_markslashes." -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "Regex pour les mots entre /slash/" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5104,16 +5130,16 @@ msgstr "# Une expression régulière qui p "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par " "défaut.\n" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "Une expression régulière pour déterminer quels mots afficher dans " "col_markstars." -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "Regex pour les mots entre *astérisques*" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5122,16 +5148,16 @@ msgstr "# Une expression régulière qui p "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par " "défaut.\n" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "Une expression régulière pour déterminer quels mots afficher dans " "col_markstroke." -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "Regex pour les mots entre -tirets-" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5140,16 +5166,16 @@ msgstr "# Une expression régulière qui p "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par " "défaut.\n" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "Une expression régulière pour déterminer quels mots afficher dans " "col_markdash." -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "Regex pour les mots entre _underscore_" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" @@ -5158,47 +5184,79 @@ msgstr "# Une expression régulière qui p "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par " "défaut.\n" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "Une expression régulière pour trouver les préfixes dans le sujet. '|' est un " "séparateur." -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "Regex pour les préfixes dans le sujet" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "# Une expression régulière qui permettra à tin de trouver les préfixes\n" "# dans le sujet et qui seront effacés avant d'afficher l'en-tête.\n" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "Une expression régulière pour trouver les suffixes dans le sujet. '|' est un " "séparateur." -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "Regex pour les suffixes dans le sujet" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "# Une expression régulière qui permettra à tin de trouver les suffixes\n" "# dans le sujet et qui seront effacés avant d'afficher l'en-tête.\n" -#: src/lang.c:1745 +# TRANSLATION MISSING +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "Nom et options pour le visualisateur MIME externe, --internal pour celui " "inclus" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "Visualisateur de contenu MIME" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" @@ -5208,129 +5266,129 @@ msgstr "# Utilisation du visualisateur M "# Sinon, spécifiez un logiciel externe (pe. metamail) ou laissez ce champ\n" "# vide pour ne pas activer la prévisualisation automatique.\n" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "Confirmation avant le lancement d'un visualisateur externe" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "Demander avant d'utiliser le visualisateur" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "# Si ON, tin demandera avant d'utiliser metamail pour afficher les\n" "# messages MIME\n" "# Cela ne se produit que lorsque 'metamail_prog' contient une valeur\n" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Marquer lu les groupes à la fermeture ? change & valide." -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "Marquer lu les groupes à la fermeture" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "# Si ON, demande à l'utilisateur si les groupes consultés\n" "# doivent être marqués lus\n" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "Marquer lu le groupe via la flèche gauche" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "# Si ON, marque lu avec <- le groupe/fil.\n" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "Marquer lu le fil via la flèche gauche" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "Quelles actions requièrent confirmation" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "# Demande de confirmation pour...\n" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "'Marquer lu l'article' ignore les marques" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "# Si ON, la fonction 'Marquer lu l'article' agit uniquement sur l'article\n" "# actuel.\n" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "Logiciel utilisé pour lancer les URLs, valide, annule." -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "Logiciel lançant les URLs" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "# Commande ou script ouvrant les URLs. L'URL sera ajoutée\n" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "Utiliser la souris dans l'xterm" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "# Si ON, active le support de la souris dans xterm\n" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "Utiliser les flèches du pavé numérique" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "# Si ON, active les flèches de défilement pour les terminaux\n" "# les supportant\n" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "Nombre max d'articles à récupérer. valide." -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "Nombre d'articles à récupérer" # AMBIGUOUS -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "# Nombre d'articles à récupérer (0=pas de limite); si le nombre est négatif\n" "# détermine le nombre max d'articles déjà lus à relire avant le premier non " "lu\n" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "Nombre de jours un article est considéré comme récent. valide." -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "Durée des articles considérés comme récents" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "# Nombre de jours un article est considéré comme récent; (0=OFF)\n" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "WILDMAT pour les wildcards normaux, REGEX pour expressions régulières." -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "Concordance wildcard" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" @@ -5340,307 +5398,307 @@ msgstr "# Concordances Wildcard\n" "# * 0 = wildmat\n" "# 1 = regex\n" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "Score minimal avant qu'un article soit filtré. valide." -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "Score minimum (filtre)" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "# Score minimal avant qu'un article soit filtré\n" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "Score par défaut pour filtrer les articles. valide." -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "Score par déf. pour filtrer les articles" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "# Score par défaut pour filtrer les articles\n" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "Score minimal avant qu'un article soit sélectionné. valide." -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "Score minimum (sélection)" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "# Score minimal avant qu'un article soit sélectionné\n" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "Score par défaut pour la sélection des articles. valide." -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "Score par défaut pour sél. les articles" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "# Score par défaut pour sélectionner les articles\n" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "Utiliser slrnface pour afficher les 'X-Face:'" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "# Si ON, utiliser slrnface(1) pour interpréter l'en-tête 'X-Face:'\n" "# Seulement utile lors de l'utilisation de tin dans un xterm.\n" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "Utiliser les couleurs ANSI" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "# Si ON, utiliser les couleurs ANSI\n" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "Couleur standard de l'avant-plan" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# Couleur standard de l'avant-plan\n" "# Défaut : -1 (défaut couleur)\n" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "Couleur standard de l'arrière-plan" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# Couleur standard de l'arrière-plan\n" "# Défaut : -1 (défaut couleur)\n" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "Couleur du texte inversé (arrière-plan)" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# Couleur de l'arrière-plan pour le texte inversé\n" "# Défaut : 4 (bleu)\n" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "Couleur du texte inversé (avant-plan)" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# Couleur de l'avant-plan du texte inversé\n" "# Défaut : 7 (blanc)\n" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "Couleur du texte" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# Couleur du texte\n" "# Défaut : -1 (défaut couleur)\n" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "Couleur du petit menu d'aide" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# Couleur du petit menu d'aide\n" "# Défaut : 3 (marron)\n" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "Couleur de l'aide" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "# Couleur des pages d'aide\n" "# Défaut : -1 (couleur par défaut)\n" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "Couleur des messages de statut" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "# Couleur des messages de statut\n" "# Défaut : 6 (cyan)\n" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "Couleur de citation de 1er niveau" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "# Couleur de citation de premier niveau\n" "# Défaut : 2 (vert)\n" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "Couleur de citation de 2nd niveau" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# Couleur de citation de second niveau\n" "# Défaut : 3 (marron)\n" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "Couleur de citation de 3e niveau ou sup." -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# Couleur de citation de 3e niveau ou supérieur\n" "# Défaut : 4 (bleu)\n" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "Couleur des en-têtes de l'article" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# Couleur des en-têtes de l'article\n" "# Défaut : 2 (vert)\n" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "Couleur des champs d'en-tête actuels" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# Couleur des champs d'en-têtes actuels\n" "# Défaut : 9 (rouge gras)\n" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "Couleur du sujet" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# Couleur du sujet\n" "# Défaut : 6 (cyan)\n" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "Couleur du compteur de réponse" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "# Couleur du compteur de réponse\n" "# Défaut : 2 (vert)\n" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "Couleur de l'expéditeur (From:)" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# Couleur de l'expéditeur (From:)\n" "# Défaut : 2 (vert)\n" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "Couleur de l'aide/signature email" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# Couleur de l'aide/signature email\n" "# Défaut : 4 (bleu)\n" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "Couleur des signatures" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# Couleur des signatures\n" "# Défaut : 4 (bleu)\n" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "Couleur des URLs en surbrillance" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "# Couleur des URLs en surbrillance\n" "# Défaut : -1 (défaut couleur)\n" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "Couleur des mots entre *astérisques*" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# Couleur des mots entre *astérisques*\n" "# Défaut : 11 (jaune)\n" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "Couleur des mots entre _underscore_" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# Couleur des mots entre _underscore_\n" "# Défaut : 13 (rose gras)\n" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "Couleur des mots entre /slash/" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# Couleur des mots entre /slash/\n" "# Défaut : 14 (cyan gras)\n" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "Couleur des mots entre -tirets-" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# Couleur des mots entre -tirets-\n" "# Défaut : 12 (bleu gras)\n" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "Style des mots entre *astérisques*" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5666,57 +5724,57 @@ msgstr "# Style des mots mis en évidence "# Style des mots entre *astérisques*\n" "# Défaut : 6 (gras)\n" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "Style des mots entre _underscore_" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "# Style des mots entre _tirets_\n" "# Défaut : 2 (misé en évidence accrue)\n" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "Style des mots entre /slash/" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "# Style des mots entre /slash/\n" "# Défaut : 5 (contrasté)\n" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "Style des mots entre -tirets-" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "# Style des mots entre -tirets-\n" "# Défaut : 3 (vidéo inversée)\n" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "Mise en évidence des URLs dans les articles" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "# Mettre en évidence les URLs ?\n" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "Mise en évidence des mots dans les articles" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "# Mettre en évidence les mots ?\n" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "Afficher ça plutôt qu'une marque" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5730,58 +5788,58 @@ msgstr "# Est-ce que les astérisques et "# 1 = oui, afficher la marque\n" "# * 2 = plutôt afficher un espace\n" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Largeur du pager. valide." -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "Largeur du pager" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "# Justifier les lignes des articles à la colonne indiquée\n" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "Englober les fils pour le non lu suivant" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "# Si ON, englober les fils lors de la recherche de l'article suivant non lu\n" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "Adresse mail par défaut (et nom complet). valide." -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "Adresse mail (et nom complet)" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "# Adresse mail (et nom complet) si ce n'est pas utilisateur@hôte\n" "# (nom complet)\n" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "Inclure en-tête Followup-To dans l'éditeur" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "# Si ON, inclure l'en-tête Followup-To lors de la composition\n" "# des articles\n" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Chemin/! commande/--aucune pour la création de votre signature. " "valide." -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "Signature depuis fichier/commande" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5792,41 +5850,41 @@ msgstr "# Fichier de signature à utilise "# default_sigfile=fichier\tutilise le contenu du fichier comme signature\n" "# default_sigfile=!commande\texécute une commande externe comme signature\n" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Précéder la signature avec \"-- \". change & valide." -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "Précéder la signature avec \"-- \"" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "# Si ON, précéde la signature avec le délimiteur standard\n" "# '\\n-- \\'\n" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "Rajouter la signature lors du repostage. change & valide." -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "Rajouter la signature lors du repostage" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "# Si ON, rajoute la signature aux articles repostés\n" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "Caractère de citation, %s ou %S pour les initiales de l'auteur." -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "Caractère de citation" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" @@ -5834,11 +5892,11 @@ msgstr "# Caractères utilisés pour les c "# '_' est remplacé par ' ', %%s, %%S sont remplacés par les intiales\n" "# de l'auteur auquel vous répondez.\n" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "Type de citations" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5860,15 +5918,15 @@ msgstr "# Type de citations lors des rép "# 6 = Citer les signatures, citer les lignes vides\n" "# 7 = Citations compr., signatures et lignes vides citées\n" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "%A Adresse %D Date %F Adresse+Nom %G groupe %M Message-ID %N Nom %C Prénom" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "Citation lors d'un suivi" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" @@ -5877,35 +5935,35 @@ msgstr "# Format de la citation lors de "# %%A Adresse\t\t%%D Date\t%%F Adresse+Nom\t%%G groupe\n" "# %%M Message-ID\t%%N Nom complet\t%%C Prénom\t%%I Initiales\n" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "Citation lors d'un cross-post" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "Citation lors d'un envoi par mail" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Si ON, inclus l'en-tête 'User-Agent:'. change & valide." -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "Insérer l'en-tête 'User-Agent'" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "# Si ON inclus l'en-tête 'User-Agent:'\n" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "Jeu d'encodage pour MIME (p.e. US-ASCII, ISO_8859_1, EUC_KR), valide." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "MM_CHARSET" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5922,27 +5980,27 @@ msgstr "# Jeu d'encodage supporté locale "# d'encodage autre que mm_charset est considéré comme non disponible et\n" "# représenté par '?'.\n" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "MM_NETWORK_CHARSET" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# Jeu d'encodage utilisé par l'en-tête MIME (Content-Type).\n" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "Format de la boîte à lettres" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "# Format de la boîte à lettres\n" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "Encodage MIME dans les messages usenet" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5955,15 +6013,15 @@ msgstr "# Si nécessaire, encodage MIME ( "# pour les jeux d'encodage 8bit Est Asiatique, Grec et Russe, car contenant\n" "# un plus grand nombre de caractères 8bit.\n" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "Ne pas changer sauf si vous savez ce que vous faites. annule." -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "Caractères 8bit dans les en-têtes usenet" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" @@ -5974,28 +6032,28 @@ msgstr "# Si ON, les caractères 8bit dan "# de la valeur de cette option sauf si post_mime_encoding a comme\n" "# valeur 8bit.\n" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Visualiser automatiquement les fichiers traités. change, " "valide, annule." -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "Voir les fichiers traités" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "# Si ON, les fichiers traités seront ouverts\n" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "Encodage MIME pour les mails" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "Caractères 8bits dans en-têtes mail" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -6013,26 +6071,26 @@ msgstr "# Si ON, les caractères 8bit dan "# mails donc nous vous conseillons de ne PAS activer cette option sauf si\n" "# vous avez une bonne raison.\n" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "Nettoyer les fins de lignes" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "# Si ON, enlève les blancs présents aux fins de lignes pour un affichage \n" "# plus rapide sur les terminaux lents.\n" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "Si ON, utilise 'translit' pour iconv_open(3). change & " "valide." -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "Translitération (conversion)" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" @@ -6040,147 +6098,147 @@ msgstr "# Si ON, utilise l'extension //T "# caractère n'est pas disponible dans l'encodage choisi, il peut être\n" "# remplacé par un ou plusieurs autres caractères similaires.\n" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Vous envoie automatiquement une copie (CC). change & valide." -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "Envoyer automatiquement une copie" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "# Si ON, inclus automatiquement votre nom dans le champ Cc: lors d'un envoi\n" "# par mail d'un article.\n" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Vous envoie automatiquement une copie privée (BCC). change & " " valide." -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "Envoi automatique d'une copie privée" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "# Si ON, inclus automatiquement votre nom dans le champ Bcc: lors d'un envoi\n" "# par mail d'un article.\n" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "Être averti de ces éléments. valide." -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "Pièges à spam dans les adresses" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "# Une liste des parties dans les adresses, délimitées par des virgules,\n" "# que vous souhaitez connaître lors d'une réponse par mail.\n" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Entrer la durée d'un filtre (en nombre de jours). valide." -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "Durée de validité d'un filtre" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "# Durée (en nombre de jours) de validité d'un filtre\n" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "Créer un filtre pour les articles postés. change & valide." -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "Créer un filtre pour les articles postés" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "# Si ON, crée un filtre pour les articles débutant un nouveau fil\n" "# afin de mettre en surbrillance les suivis.\n" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "Le répertoire où sont enregistrés les articles/fils au format mailbox." -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "Répertoire mail" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "# (-m) répertoire où sont enregistrés les articles/fils au format mailbox\n" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "Enregistrer articles en arrière-plan (-S)" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "# Si ON, les articles/fils seront enregistrés à l'arrière-plan lorsque\n" "# l'option -S ou (-M/-N) pour les mails est spécifiée.\n" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "Le répertoire où vous voulez enregistrer les articles/fils." -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "Répertoire où enregistrer les articles/fils" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "# Répertoire où sont enregistrés les articles/fils\n" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Enregistrement auto. basé sur l'en-tête Archive-name:. change & " " valide." -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "Honorer l'en-tête 'Archive-name:'" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "# Si ON, les articles/fils avec 'Archive-name:' dans l'en-tête\n" "# du mail seront enregistrés automatiquement avec l'Archive-name\n" "# & le numéro de la partie et ou patch.\n" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Marquer lu les articles/fils enregistrés. change, valide, " " annule." -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "Marquer lu les articles/fils enregistrés" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "# Si ON, marque lu les articles qui sont enregistrés\n" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Post-traiter (p.e. extraire les pj) les articles enregistrés." -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "Post-traiter les articles enregistrés" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -6192,104 +6250,104 @@ msgstr "# Post-traitement (enregistremen "# 1 = extraire uniquement les *.shar (archives shell)\n" "# 2 = oui\n" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "Traiter uniquement les articles non lus" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "# Si ON, enregistre/imprime/pipe/envoi articles non lu\n" "# (excepté les articles marqués)\n" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "Afficher tout ou une partie des en-têtes. change & valide." -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "Imprimer tous les en-têtes" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "# Si ON, imprimer tous les en-têtes, sinon juste les lignes importantes\n" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "Le logiciel d'impression avec options utilisées pour imprimer les articles/" "fils." -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "Logiciel d'impression avec options" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "# Logiciel d'impression avec options utilisées por imprimer les articles/" "fils\n" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "Rafraîchir l'écran après certaines actions" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "# Si ON, un rafraîchissement de l'écran sera toujours effectué après\n" "# certaines commandes externes\n" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Lancer l'éditeur avec une ligne décalée. change, valide, " " annule." -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "Lancer l'éditeur avec une ligne décalée" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "# Si ON, l'éditeur sera lancé avec le curseur décalé\n" "# sinon, le curseur sera positionné sur la première ligne\n" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "%E pour l'éditeur, %F pour le fichier, %N pour la ligne, valide." -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "Lancement de votre éditeur" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "# Format des paramètres pour l'éditeur\n" "# %%E Éditeur %%F Fichier %%N N° de ligne\n" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "Nom et options pour l'inews externe, --internal pour l'inews interne" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "Inews externe" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "# Si '--internal', utilise l'inews allégé intégré pour poster via\n" "# NNTP sinon, utilise un logiciel inews externe\n" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "%M pour le MUA, %S pour le sujet, %T pour 'to:', %F pour Fichier, " "valide." -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "Lancement de votre client mail" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6300,11 +6358,11 @@ msgstr "# Format des paramètres pour le "# p.e. pour utiliser elm comme MUA : elm -s \"%%S\" \"%%T\" < %%F\n" "# p.e. pour elm interactif : elm -i %%F -s \"%%S\" \"%%T\"\n" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "Utiliser un MUA interactif" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -6316,59 +6374,59 @@ msgstr "# MUA interactif :\n" "# 1 = utiliser un MUA interactif avec les en-têtes du fichier\n" "# 2 = utiliser un MUA interactif sans les en-têtes du fichier\n" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "Effacer ~/.article après le postage" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "# Si ON, effacer ~/.article après le postage.\n" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Fichier pour les articles postés, valide, pas de fichier = désactive." -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "Fichier pour les articles postés" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "# Fichier où enregistrer les articles postés ('posted' par défaut)\n" "# Si aucun fichier n'est indiqué, les articles postés ne seront pas\n" "# enregistrés\n" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Garder les articles non postés dans ~/dead.articles. change & " " valide." -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "Articles non postés dans ~/dead.articles" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "# Si ON, garde tous les articles non postés dans ~/dead.articles\n" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Voulez-vous effacer dans newsrc les groupes auxquels vous vous êtes désabonnés" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "Pas de groupes désabonnés dans newsrc" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# Si ON, efface dans newsrc les groupes auxquels vous vous êtes désabonnés\n" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "Effacer les groupes corrompus de newsrc" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" @@ -6380,55 +6438,55 @@ msgstr "# Que faire des groupes corrompu "# 1 = effacer\n" "# 2 = marquer d'un D dans l'écran de sélection\n" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "Durée avant que le fichier active ne soit relu. valide." -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "Durée avant relecture du fichier active" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "# Durée (en secondes) avant que le fichier active ne soit relu (0=jamais)\n" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "Reconnexion automatique au serveur" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "# Si ON, reconnexion automatique au serveur NNTP si la connexion est rompue\n" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Créer des copies locales des en-têtes NNTP. change & valide." -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "Cache local des en-têtes NNTP" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "# Si ON, crée une copie locale des en-têtes NNTP.\n" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "Formatage des dates. valide, annule." -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "Format des dates affichées" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "# Format des dates affichées\n" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "Normalisation d'Unicode" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -6444,11 +6502,11 @@ msgstr "# Normalisation d'Unicode\n" "# 3 = NFC\n" "# 4 = NFD\n" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "Rendu BiDi" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "# Si ON, le texte bi-directionnel est affiché par tin\n" @@ -6473,11 +6531,11 @@ msgid "\n" msgstr "\n" "Connexion au serveur expirée, reconnexion # %d\n" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "Rejoindre le groupe actuel\n" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "Lecture (%s)\n" @@ -6495,7 +6553,7 @@ msgstr "Réenvoyer la dernière commande ( #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -6505,14 +6563,14 @@ msgid "couldn't expand %s\n" msgstr "impossible de décompacter %s\n" # TRANSLATION MISSING -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" # TRANSLATION MISSING -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" @@ -6520,13 +6578,13 @@ msgid "Line %d is longer than 998 octets msgstr "" # TRANSLATION MISSING -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "Postage : %.*s ..." @@ -6568,7 +6626,7 @@ msgstr "Ce message a été composé avec le "ce qui suit peut paraître assez bizarre.\n" "\n" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "octets" Binary files tin-1.9.1/po/ru.gmo and tin-1.9.2/po/ru.gmo differ diff -Nurp tin-1.9.1/po/ru.po tin-1.9.2/po/ru.po --- tin-1.9.1/po/ru.po 2006-04-09 17:55:10.000000000 +0200 +++ tin-1.9.2/po/ru.po 2007-02-01 14:02:44.660624580 +0100 @@ -3,10 +3,10 @@ # Andrei Emeltchenko , 2005. # msgid "" -msgstr "Project-Id-Version: tin 1.8.0\n" +msgstr "Project-Id-Version: tin 1.8.2\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" - "PO-Revision-Date: 2005-03-23 15:39+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" + "PO-Revision-Date: 2006-04-21 15:39+0200\n" "Last-Translator: Andrei Emeltchenko \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -15,7 +15,7 @@ msgstr "Project-Id-Version: tin 1.8.0\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" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" @@ -157,135 +157,135 @@ msgstr "# sort_art_type=þéóìï\n" msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=þéóìï\n" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=þéóìï\n" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=óôòïëá (ÎÁÐÒ. talk.*)\n" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=þéóìï\n" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=subj (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 1=subj (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=from (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 3=from (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "# 4=msgid 5=ÓÔÒÏËÉ\n" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=óôòïëá\n" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=þéóìï\n" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "# fcc=óôòïëá (ÎÁÐÒ. =mailbox)\n" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=ÐÏÄÄÅÒÖÉ×ÁÅÍÁÑ_ËÏÄÉÒÏ×ËÁ" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=óôòïëá (ÐÏ ÕÍÏÌÞÁÎÉÀ US-ASCII)\n" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" -msgstr "# ÄÏÂÁ×ÔØÔÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÚÁÇÏÌÏ×ËÉ ÚÄÅÓØ\n" +msgstr "# ÄÏÂÁרÔÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÚÁÇÏÌÏ×ËÉ ÚÄÅÓØ\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" -msgstr "" +msgstr "# × *binaries* ÄÅÌÁÔØ ÐÏÌÎÕÀ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ, ÎÏ ÔÏÌØËÏ ÎÅ TeX2ISO\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(ÎÅÉÚ×ÅÓÔÎÏ)" @@ -413,7 +413,7 @@ msgstr "óÔÁÔØÑ" #: src/lang.c:70 #, c-format msgid "-- %d %s mailed --" -msgstr "-- %d %s ÐÏÓÌÁÎÏ ÐÏ email --" +msgstr "-- %d %s ÏÔÐÒÁ×ÌÅÎÏ ÐÏ email --" #: src/lang.c:71 #, c-format @@ -613,7 +613,7 @@ msgstr "ðÒÏ×ÅÒËÁ ÎÏ×ÏÓÔÅÊ..." #: src/lang.c:117 #, c-format msgid "Post-process %s=no, %s=yes, %s=shar, %s=quit: " -msgstr "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ %s=ÄÁ, %s=ÎÅÔ, %s=shar, %s=×ÙÈÏÄ:" +msgstr "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ %s=ÎÅÔ, %s=ÄÁ, %s=shar, %s=×ÙÈÏÄ:" #: src/lang.c:119 msgid "ANSI color disabled" @@ -649,7 +649,7 @@ msgstr "óÏÚÄÁÎÉÅ ÆÁÊÌÁ active ÄÌÑ ÓÏÈÒ. msgid "Creating newsrc file...\n" msgstr "óÏÚÄÁÎÉÅ ÆÁÊÌÁ newsrc...\n" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "ðÏ ÕÍÏÌÞÁÎÉÀ" @@ -766,7 +766,7 @@ msgstr "÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ #: src/lang.c:158 msgid "Right parenthesis missing in old-style address.\n" -msgstr "÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÛÅÎÁ ÐÒÁ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n" +msgstr "÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ ÐÒÁ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n" #: src/lang.c:159 msgid "At-sign missing in mail address.\n" @@ -1133,11 +1133,11 @@ msgstr "ðÏÌÎÙÊ" #: src/lang.c:255 msgid "Comment (optional) : " -msgstr "ëÏÍÍÅÎÔÁÒÉÊ (ÏÐÃÉÏÎÁÌÅÎ) : " +msgstr "ëÏÍÍÅÎÔÁÒÉÊ (ÏÐÃÉÏÎÁÌÅÎ): " #: src/lang.c:256 msgid "Apply pattern to : " -msgstr "ðÒÉÍÅÎÉÔØ ÛÁÂÌÏÎ Ë : " +msgstr "ðÒÉÍÅÎÉÔØ ÛÁÂÌÏÎ Ë : " #: src/lang.c:257 msgid "From: line (ignore case) " @@ -1178,7 +1178,7 @@ msgstr "ÇÒÕÐÐÙ" #: src/lang.c:266 #, c-format msgid "Rereading %s..." -msgstr "ðÅÒÅÞÉÔÙ×ÁÎÉÅ %s..." +msgstr "ðÅÒÅÞÉÔÙ×ÁÀ %s..." #: src/lang.c:267 msgid "Top Level Commands" @@ -1390,7 +1390,7 @@ msgstr "ðÒÏÓÍÏÔÒÅÔØ/ÓÏÈÒÁÎÉÔØ ÍÕÌØÔÉÍÅÄÉ #: src/lang.c:319 #, c-format msgid "report bug or comment via mail to %s" -msgstr "ÐÏÓÌÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÉÌÉ ËÏÍÍÅÎÔÁÒÉÊ %s ÐÏ email" +msgstr "ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÉÌÉ ËÏÍÍÅÎÔÁÒÉÊ %s ÐÏ email" #: src/lang.c:320 msgid "choose range of articles to be affected by next command" @@ -1426,7 +1426,7 @@ msgstr "ÐÅÒÅÊÔÉ ÎÁ ÓÔÁÔØÀ ÐÏ Message-ID" #: src/lang.c:328 msgid "mail article/thread/hot/pattern/tagged articles to someone" -msgstr "ÐÏÓÌÁÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ÐÏ email" +msgstr "ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ÐÏ email" #: src/lang.c:329 msgid "menu of configurable options" @@ -1578,7 +1578,7 @@ msgstr "ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÇÒÕÐÐÕ" #: src/lang.c:366 msgid "toggle all selections (all articles)" -msgstr "éÚÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅ ÓÔÁÔØÉ)" +msgstr "ÉÚÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅ ÓÔÁÔØÉ)" #: src/lang.c:367 msgid "select group (make \"hot\")" @@ -1594,7 +1594,7 @@ msgstr "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ, ÅÓÌÉ ÈÏÔÑ ÂÙ #: src/lang.c:370 msgid "select threads that match user specified pattern" -msgstr "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÉ ËÏÔÏÒÙÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ ÕËÁÚÁÎÎÙÊ ÛÁÂÌÏÎ" +msgstr "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÉ, ËÏÔÏÒÙÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ ÕËÁÚÁÎÎÙÊ ÛÁÂÌÏÎ" #: src/lang.c:371 msgid "tag all parts of current multipart-message in order" @@ -1668,7 +1668,7 @@ msgstr "ÐÅÒÅÍÅÓÔÉÔØ ÇÒÕÐÐÕ × ÓÐÉÓËÅ" msgid "choose next group with unread news" msgstr "×ÙÂÒÁÔØ ÓÌÅÄ. ÇÒÕÐÐÕ Ó ÎÅÐÒÏÞÉÔÁÎÎÙÍÉ ÎÏ×ÏÓÔÑÍÉ" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "×ÙÈÏÄ" @@ -1714,7 +1714,7 @@ msgstr "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ÉÍÑ ÇÒÕÐÐÙ ÉÌ #: src/lang.c:400 msgid "toggle display to show all/unread subscribed groups" -msgstr "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ ÇÒÕÐÐÙ / ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ" +msgstr "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ" #: src/lang.c:401 msgid "unsubscribe from chosen group" @@ -1730,7 +1730,7 @@ msgstr "ÓÏÒÔÉÒÏ×ÁÔØ ÓÐÉÓÏË ÇÒÕÐÐ" #: src/lang.c:404 msgid "toggle display to show all/subscribed groups" -msgstr "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ / ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ" +msgstr "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ" #: src/lang.c:405 msgid "0 - 9\t choose article by number" @@ -1738,7 +1738,7 @@ msgstr "0 - 9\t ×ÙÂÒÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒ #: src/lang.c:406 msgid "mark thread as read and return to group index page" -msgstr "ÐÏÍÅÔÉÔØ ÎÉÔØ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ É ×ÅÒÎÕÔØÓÑ ÎÁ ÓÔÒÁÎÉÃÕ ÉÎÄÅËÓÁ ÇÒÕÐÐ" +msgstr "ÐÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ É ×ÅÒÎÕÔØÓÑ ÎÁ ÓÔÒÁÎÉÃÕ ÉÎÄÅËÓÁ ÇÒÕÐÐ" #: src/lang.c:407 msgid "mark thread as read and enter next unread thread or group" @@ -1803,7 +1803,7 @@ msgstr "÷ÓÅ ÞÁÓÔÉ ÐÏÍÅÞÅÎÙ" #: src/lang.c:421 msgid "Storing article for later posting" -msgstr "óÏÈÒÁÎÉÅ ÓÔÁÔØÉ ÄÌÑ ÏÔÌÏÖÅÎÎÏÊ ÏÔÐÒÁ×ËÉ" +msgstr "óÏÈÒÁÎÅÎÉÅ ÓÔÁÔØÉ ÄÌÑ ÏÔÌÏÖÅÎÎÏÊ ÏÔÐÒÁ×ËÉ" #: src/lang.c:422 msgid "Please enter a valid character" @@ -2013,331 +2013,339 @@ msgid "Lines %s " msgstr "óÔÒÏË %s " #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "Message-ID: ÓÔÒÏËÁ " - -#: src/lang.c:479 msgid "Mail" msgstr "" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "" -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " -msgstr "ðÏÓÌÁÔØ ÐÏ email ÓÔÁÔØÀ(É) [%.*s]> " +msgstr "ïÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ(É) ÐÏ email [%.*s]> " -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "ïÔÐÒÁ×ÉÔØ ÌÏÇ-ÓÏÏÂÝÅÎÉÅ %s\n" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "ïÔÐÒÁ×ÌÑÅÔÓÑ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ..." -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "ïÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ %s?" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "ïÔÐÒÁ×ÌÅÎÏ ÐÏ email" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "ïÔÐÒÁ×ÌÑÅÔÓÑ ÐÏ email %s..." -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" "#\n" msgstr "" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "%s ÐÏÍÅÞÅÎÏ ËÁË ÎÅÐÒÏÞÉÔÁÎÏ" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "ðÏÍÅÞÅÎÏ %d ÉÚ %d ÏÔÍÅÞÅÎÎÙÈ %s ËÁË ÐÒÏÞÉÔÁÎÎÙÅ" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "ðÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ%s?" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ, %s=ÔÅËÕÝÕÀ ÓÔÁÔØÀ, %s=×ÙÈÏÄ: " -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "ðÏÍÅÔÉÔØ ÇÒÕÐÐÕ %s ËÁË ÐÒÏÞÉÔÁÎÎÕÀ?" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "ðÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ %s?" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓË., %s=ÔÅËÕÝÕÀ ÄÉÓË., %s=×ÙÈÏÄ: " -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." -msgstr "óÏÐÁÓÔÏ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ %s ÇÒÕÐÐ..." +msgstr "óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ %s ÇÒÕÐÐ..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=ÐÅÒÅÊÔÉ Ë n; %s=ÓÌÅÄ. ÎÅÐÒÏÞ.; %s=ÐÏÉÓË ÐÏ ÛÁÂÌÏÎÕ; %s=ÕÎÉÞÔ./×ÙÂÒÁÔØ" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=ÐÏÉÓË Á×Ô.; %s=catchup; %s=ÓÔÒË. ×ÎÉÚ.; %s=ÓÔÒË. ××ÅÒÈ.; %s=ÍÁÒË. ÐÒÏÞ.; %" "s=ÓÐÉÓ. ÄÉÓË." -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=ÓÔÒË. ××ÅÒÈ; %s=ÓÔÒË. ×ÎÉÚ; %s=ÓÔÒ. ××ÅÒÈ; %s=ÓÔÒ. ×ÎÉÚ; %s=ÎÁÞÁÌÏ; %" "s=ËÏÎÅÃ" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=ÐÏÉÓË ×ÐÅÒ£Ä; %s=ÐÏÉÓË ÎÁÚÁÄ; %s=×ÙÈÏÄ" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=ÐÏÉÓË Á×ÔÏÒÁ; %s=ÐÏÉÓË × ÓÏÏÂ.; %s=catchup; %s=followup; %s=ÍÁÒË. ÐÒÏÞ." -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "=ÐÅÒÅÊÔÉ Ë n; %s=ÓÌÅÄ. ÎÅÐÒÏÞ.; %s,%s=ÐÏÉÓË ÐÏ ÛÁÂÌÏÎÕ; %s=catchup" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=ÓÔÒ. ×ÎÉÚ; %s=ÓÔÒ. ××ÅÒÈ; %s=ÐÏÍÏÝØ; %s=ÐÅÒÅÍ.; %s=×ÙÈÏÄ; %s=ÕÓÔ. ×ÓÅ|" "ÎÅÐÒÏÞ." -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=ÐÏÄÐÉÓÁÔØÓÑ; %s=ÐÏÄÐ. ÛÁÂÌÏÎ; %s=ÏÔÐÉÓÁÔØÓÑ; %s=ÏÔÐÉÓ. ÛÁÂÌÏÎ; %s=yank in/" "out" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "=ÐÅÒÅÊÔÉ Ë n; %s=ÓÌÅÄ. ÎÅÐÒÏÞ.; %s=catchup; %s=ÉÚÍÅÎ. ×ÉÄ" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=ÐÏÍÏÝØ; %s=ÓÔÒ. ×ÎÉÚ; %s=ÓÔÒ. ××ÅÒÈ; %s=×ÙÈÏÄ; %s=ÏÔÍ.; %s=ÍÁÒË. ÎÅÐÒÏÞ." -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "--äÁÌÅÅ--" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "ðÅÒÅÍÅÝÅÎÉÅ %s..." +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "Message-ID: ÓÔÒÏËÁ " + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr ", ÉÍÑ: " -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "ðÅÒÅÊÔÉ Ë ÇÒÕÐÐÅ [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "ÇÒÕÐÐÙ" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "ðÏÚÉÃÉÑ %s × ÓÐÉÓËÅ ÇÒÕÐÐ (1,2,..,$) [%d]> " -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "ÇÒÕÐÐÁ" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "ðÏÐÒÏÂÏ×ÁÔØ É ÓÏÈÒÁÎÉÔØ newsrc ÓÎÏ×Á?" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." -msgstr "÷ÎÉÍÅÎÉÅ: çÒÕÐÐÙ ÎÅ ÂÙÌÉ ÚÁÐÉÓÁÎÙ × newsrc. óÏÈÒÁÎÅÎÉÅ ÐÒÅÒ×ÁÎÏ." +msgstr "÷ÎÉÍÁÎÉÅ: çÒÕÐÐÙ ÎÅ ÂÙÌÉ ÚÁÐÉÓÁÎÙ × newsrc. óÏÈÒÁÎÅÎÉÅ ÐÒÅÒ×ÁÎÏ." -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "newsrc ÆÁÊÌ ÕÓÐÅÛÎÏ ÓÏÈÒÁΣÎ.\n" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "-- óÌÅÄÕÀÝÉÊ ÏÔ×ÅÔ --" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "ðÁÒÏÌØ Á×ÔÏÒÉÚÁÃÉÉ Ë NNTP ÎÅ ÎÁÊÄÅÎ ÄÌÑ %s" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "îÅÔ " -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "*** îÅÔ ÓÔÁÔÅÊ ***" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "îÉ ÏÄÎÁ ÓÔÁÔØÑ ÎÅ ÂÙÌÁ ÏÔÐÒÁ×ÌÅÎÁ" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "*** îÅÔ ÏÐÉÓÁÎÉÑ ***" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "îÅÔ ÉÍÅÎÉ ÆÁÊÌÁ" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "îÅÔ ÇÒÕÐÐÙ" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "*** îÅÔ ÇÒÕÐÐ ***" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "îÅÔ ÂÏÌØÛÅ ÇÒÕÐÐ ÄÌÑ ÞÔÅÎÉÑ" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "îÅÔ ÐÏÓÌÅÄÎÅÇÏ ÓÏÏÂÝÅÎÉÑ" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "îÅÔ ÁÄÒÅÓÁ email" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "îÅÔ ÍÁÒËÉÒÏ×ÁÎÎÙÈ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "îÅÔ ÓÏ×ÐÁÄÅÎÉÑ" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "âÏÌØÛÅ ÎÅÔ ÇÒÕÐÐ" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "îÅÔ ÇÒÕÐÐ" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "îÅÔ ÓÌÅÄÕÀÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÇÒÕÐÐÙ" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "îÅÔ ÏÔ×ÅÔÏ×" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "îÅÔ ÏÔ×ÅÔÏ× ÎÁ ÓÐÉÓÏË × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "îÅÔ ÓÔÒÏËÉ ÐÏÉÓËÁ" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "îÅÔ ÔÅÍÙ" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clear to end-of-line (ce)\n" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clear to end-of-screen (cd)\n" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clearscreen (cl)\n" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ cursor motion (cm)\n" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s: ÕÓÔÁÎÏ×ÉÔÅ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ TERM\n" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "îÅ ÎÁÊÄÅÎ ÐÒÏÓÍÏÔÏÒÝÉË ÄÌÑ %s/%s\n" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "çÒÕÐÐÁ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÎÁ ÜÔÏÍ ÓÅÒ×ÅÒÅ" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "çÒÕÐÐÁ %s ÎÅ ÎÁÊÄÅÎÁ × ÆÁÊÌÅ active" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "c)ÓÏÚÄÁÔØ, a)ÉÓÐ. ÁÌØÔÅÒ. ÉÍÑ, d)ÉÓÐ. ÓÔÁÎÄÁÒÔÎÙÊ .newsrc, q)×ÙÈÏÄ ÉÚ tin: " -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "a)ÉÓÐ. ÁÌØÔÅÒ. ÉÍÑ, d)ÉÓÐ. ÓÔÁÎÄÁÒÔÎÙÊ .newsrc, q)×ÙÈÏÄ ÉÚ tin: " -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2353,40 +2361,40 @@ msgid "# NNTP-server -> newsrc translati "#\n" msgstr "" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "ôÏÌØËÏ" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "ïÐÃÉÑ ÎÅ ×ËÌÀÞÅÎÁ. ðÅÒÅÓÏÂÅÒÉÔÅ ÐÁËÅÔ Ó %s." -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "íÅÎÀ ÏÐÃÉÊ" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "ïÛÉÂËÁ × regex: %s × ÐÏÚ. %d '%s'" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" -msgstr "ïÛÉÂËÁ × regex: ×ÎÕÔÒÅÎÎÑ ÏÛÉÂËÁ pcre %d" +msgstr "ïÛÉÂËÁ × regex: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %d" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" -msgstr "ïÛÉÂËÁ × regex: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ study - pcre %s" +msgstr "ïÛÉÂËÁ × regex: study - ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %s" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "ïÔÐÒÁ×ÌÅÎÉÅ ÏÔ×ÅÔÁ × ÇÒÕÐÐÕ..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" @@ -2394,277 +2402,282 @@ msgstr "ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ÏÔÐÒÁ×ÌÅÎÉÑ ÓÔÁÔ "É ÍÏÖÅÔ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁÑ, ÔÏ ×Ù ÍÏÖÅÔÅ ÏÔÌÏÖÉÔØ ÓÔÁÔØÀ É ÏÔÐÒÁ×ÉÔØ Å£ Ó\n" "ÐÏÍÏÝØÀ ^O ÐÏÚÖÅ.\n" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "éÓÔÏÒÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "ïÔÐÒÁ×ÉÔØ × ÇÒÕÐÐÕ(Ù) [%s]> " -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÎÁÞÁÔÁ --" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÚÁËÏÎÞÅÎÁ --" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "ôÅÍÁ ÓÏÏÂÝÅÎÉÑ [%s]> " -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# ó×ÏÄËÁ Ï ÓÏÏÂÝÅÎÉÑÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ × ÇÒÕÐÐÕ ÉÌÉ ÐÏ ÐÏÞÔÅ ×ÙÚÙ×ÁÅÔÓÑ ËÏÍÁÎÄÏÊ\n" "# 'W' ÉÚ tin.\n" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "ïÔÐÒÁ×ÌÅÎÉÅ ÓÔÁÔØÉ..." -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "ïÔÐÒÁ×ÉÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ [%%s]? (%s/%s/%s/%s/%s): " -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "ðÏÍÅÞÅÎÙ %s" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "óÎÑÔÙ ÏÔÍÅÔËÉ %s" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "ïÂÒÁÂÏÔËÁ ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ." -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "ïÂÒÁÂÏÔËÁ ÓÏÈÒÁΣÎÎÙÈ ÓÔÁÔÅÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ." -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "ðÒÉÎÑÔØ Followup-To? %s=ÏÔÐÒÁ×ÉÔØ, %s=ÉÇÎÏÒÉÒÏ×ÁÔØ, %s=×ÙÈÏÄ: " -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "óÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ, ÐÒÅÒ×ÁÔØ ÏÔÐÒÁ×ËÕ?" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "èÏÔÉÔÅ ÐÏÓÍÏÔÒÅÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ (%d)?" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ÕÎÉÞÔÏÖÅÎÉÑ?" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ×ÙÂÏÒÁ?" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ?" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=ÒÅÄÁËÔ. ÏÔÍÅÎ. ÓÏÏÂÝÅÎÉÑ, %s=×ÙÈÏÄ, %s=ÕÄÁÌÉÔØ (ÏÔÍÅÎÉÔØ) [%%s]: " -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "ïÓÔÁÌÉÓØ ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ - ×ÙÊÔÉ ×ÓÅ ÒÁ×ÎÏ?" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ, %s=ÏÔÌÏÖÉÔØ: " -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ÕÎÉÞÔÏÖÅÎÎÏÅ ÏÐÉÓÁÎÉÅ: " -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ×ÙÂÒÁÎÎÏÅ ÏÐÉÓÁÎÉÅ: " -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ËÏÎÆÉÇÕÒÁÃÉÉ?" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÄÉÁÐÁÚÏÎ - ÄÏÓÔÕÐÎÙ '0-9.$', ÎÁÐÒ. 1-$" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "÷Ù ÈÏÔÉÔÅ ÐÒÅÒ×ÁÔØ ÏÐÅÒÁÃÉÀ?" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "÷Ù ÈÏÔÉÔÅ ×ÙÊÔÉ ÉÚ tin ÎÅÍÅÄÌÅÎÎÏ?" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "ðÒÏÞÉÔÁÔØ ÏÔ×ÅÔ> " -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "þÔÅÎÉÅ ('q' - ×ÙÈÏÄ)..." -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "þÔÅÎÉÅ %sÓÔÁÔÅÊ..." -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "þÔÅÎÉÅ ÆÁÊÌÁ %sÁÔÒÉÂÕÔÏ×...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "þÔÅÎÉÅ ÆÁÊÌÁ %sconfig...\n" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "þÔÅÎÉÅ ÆÁÊÌÁ ÆÉÌØÔÒÏ×...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "þÔÅÎÉÅ %s ÇÒÕÐÐ..." -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "þÔÅÎÉÅ ÆÁÊÌÁ ÉÓÔÏÒÉÉ...\n" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" -msgstr "þÔÅÎÉÅ ÆÁÊÌÁ ÎÁÚÎÅÞÅÎÉÊ ËÌÁ×ÉÛ...\n" +msgstr "þÔÅÎÉÅ ÆÁÊÌÁ ÎÁÚÎÁÞÅÎÉÊ ËÌÁ×ÉÛ...\n" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ active... " -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ newsrc... " -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " -msgstr "þÔÁÎÉÅ ÆÁÊÌÁ ÇÒÕÐÐ... " +msgstr "þÔÅÎÉÅ ÆÁÊÌÁ ÇÒÕÐÐ... " -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "þÔÅÎÉÅ ÆÁÊÌÁ newsrc..." -#: src/lang.c:620 +#: src/lang.c:621 +#, fuzzy +msgid "References: line " +msgstr "References: ÓÔÒÏËÁ " + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "(%d:%02d ÏÓÔÁÌÏÓØ)" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "ïÛÉÂÏÞÎÁÑ ÇÒÕÐÐÁ %s ÕÄÁÌÅÎÁ." -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "ïÛÉÂËÁ: ÐÅÒÅÉÍÅÎÏ×ÁÔØ %s × %s" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "ïÔ×ÅÞÁÅÍ Á×ÔÏÒÕ..." -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "ïÐÒÁ×ÉÔØ ÓÎÏ×Á" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "ðÏ×ÔÏÒÎÁÑ ÏÔÐÒÁ×ËÁ ÓÔÁÔØÉ..." -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> " -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "óÂÒÏÓÉÔØ newsrc?" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ × ÓÌÅÄÕÀÝÉÅ ÇÒÕÐÐÙ" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ ÏÔÐÒÁ×ÉÔÅÌÀ. %s=mail, %s=ÏÔÐÒÁ×ÉÔØ, %s=×ÙÈÏÄ: " -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "ïÔ×ÅÔ %4d ÉÚ %4d" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "îÁÖÍÉÔÅ ÄÌÑ ÐÒÏÄÏÌÖÅÎÉÑ..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "÷ÙÂÒÁÔØ From [%s] (y/n): " -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "÷ÙÂÒÁÔØ ÓÔÒÏËÉ: (num): " -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" -msgstr "á×ÔÏ×ÙÂÏÒ íÅÎÀ óÔÁÔÅÊ" +msgstr "á×ÔÏ×ÙÂÏÒ íÅÎÀ ÓÔÁÔÅÊ" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "÷ÙÂÒÁÔØ Msg-Id [%s] (f/l/o/n): " -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "÷ÙÂÒÁÔØ ÏÂÌÁÓÔØ ÛÁÂÌÏÎÁ: " -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "÷ÙÂÒÁÔØ ôÅÍÕ [%s] (y/n): " -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "÷ÙÂÒÁÔØ ÛÁÂÌÏÎ : " -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "÷ÙÂÒÁÔØ ×ÒÅÍÑ : " -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2675,7 +2688,7 @@ msgid "# %s server configuration file\n" "############################################################################\n" "\n" msgstr "# %s ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ\n" - "# üÔÏÔ ÆÁÊÌ ÂÙÌ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÅÎ %s %s %s (\"%s\")\n" + "# üÔÏÔ ÆÁÊÌ ÂÙÌ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁΣΠ%s %s %s (\"%s\")\n" "#\n" "# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ ÐÏËÁ ÚÁÐÕÝÅÎ %s, ÔÁË ËÁË ×ÓÅ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ ×\n" "# ÜÔÏÍ ÆÁÊÌÅ ÂÕÄÕÔ ÐÅÒÅÚÁÐÉÓÁÎÙ, ËÏÇÄÁ ×Ù ÚÁ×ÅÒÛÉÔÅ ÒÁÂÏÔÕ %s.\n" @@ -2683,223 +2696,223 @@ msgstr "# %s ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ\n" "############################################################################\n" "\n" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "÷Ù×ÏÄ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÇÒÕÐÐ" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "ôÅÍÁ: ÓÔÒÏËÁ (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ) " -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "ôÅÍÁ: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "óÏÈÒÁÎÉÔØ" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "óÏÈÒÁÎÉÔØ '%s' (%s/%s)?" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "óÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ÐÅÒÅÄ ÐÒÏÄÏÌÖÅÎÉÅÍ?" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "óÏÈÒÁÎÉÔØ × ÆÁÊÌ> " -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "óÏÈÒÁÎÅÎÏ" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d ÎÅÐÒÏÞÉÔÁÎÏ (%4d hot) %s × %s\n" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "óÏÈÒÁÎÅÎÏ %s...\n" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "îÉÞÅÇÏ ÎÅ ÂÙÌÏ ÓÏÈÒÁÎÅÎÏ" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s ÉÚ %d %s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" -msgstr "-- %s ÓÏÈÒÁÎÅÎÏ × %s%s --" +msgstr "-- %s ÓÏÈÒÁÎ. × %s%s --" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" -msgstr "-- %s ÓÏÈÒÁÎÅÎÏ × %s - %s --" +msgstr "-- %s ÓÏÈÒÁÎ. × %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "úÁÐÉÓØ..." -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: ÎÅÕÄÁÞÎÁÑ ÉÎÉÃÉÁÌÉÚÁÃÉÑ ÜËÒÁÎÁ" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "%s: ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ\n" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" -msgstr "ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌÅÎØËÉÊ, %s ×ÙÈÏÄ\n" +msgstr "ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ, %s ×ÙÈÏÄ\n" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "ðÏÉÓË ÎÁÚÁÄ [%s]> " -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "ðÏÉÓË × ÔÅÌÅ [%s]> " -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "ðÏÉÓË ×ÐÅÒ£Ä [%s]> " -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "ðÏÉÓË..." -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "ðÏÉÓË ÓÔÁÔØÉ %d ÉÚ %d ('q' - ÐÒÅÒ×ÁÔØ)..." -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> " -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "÷ÙÂÅÒÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ ÉÌÉ ÐÅÒÅÊÄÉÔÅ ÓÔÒÅÌÏÞËÁÍÉ É ÎÁÖÍÉÔÅ . 'q' ×ÙÈÏÄ." -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "÷ÙÂÅÒÉÔÅ ÇÒÕÐÐÕ> " -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ×ÙÂÏÒÁ [%s]> " -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "÷ÙÂÅÒÉÔÅ ÄÉÓËÕÓÓÉÀ > " -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" -msgstr "%s %s %s (\"%s\") [%s]: ÏÔÐÒÁ×ÔÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÏÛÉÂËÅ %s\n" +msgstr "%s %s %s (\"%s\") [%s]: ÏÔÐÒÁרÔÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÏÛÉÂËÅ %s\n" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "active-ÆÁÊÌ ÓÅÒ×ÅÒÏ×" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "îÅ ÍÏÇÕ ÐÅÒÅÊÔÉ × ÎÏ×ÕÀ ÇÒÕÐÐÕ. óÎÁÞÁÌÁ ÐÏÄÐÉÛÉÔÅÓØ..." -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "<ðòïâåì>" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "óÔÁÒÔÕÀ: (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" -msgstr "óÐÉÓÏË äÉÓËÕÓÓÉÊ (%d ÉÚ %d)" +msgstr "óÐÉÓÏË ÄÉÓËÕÓÓÉÊ (%d ÉÚ %d)" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "äÉÓËÕÓÓÉÑ (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " -msgstr "÷×ÅÄÉÔÅ wildcard-ÛÁÂÌÏÎ ÄÌÑ ÐÏÄÐÉÓËÉ> " +msgstr "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÐÏÄÐÉÓËÉ> " -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "ÐÏÄÐÉÓÁÌÉÓØ ÎÁ %d ÇÒÕÐÐ" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "ðÏÄÐÉÓÁÌÉÓØ ÎÁ %s" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "ðÏÄÐÉÓÙ×ÁÅÍÓÑ... " -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÉÌÉ ÚÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) [%%s]? (%s/%s/%s): " -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "úÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> " -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "úÁÍÅÎÁ ÓÔÁÔØÉ ..." -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "ïÓÔÁÎÏ×ÌÅÎÏ. îÁÂÅÒÉÔÅ 'fg' ÄÌÑ ÐÅÒÅÚÁÐÕÓËÁ %s\n" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "%d ÄÎÅÊ" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" -msgstr "" +msgstr "<ôáâ>" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "" -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -2909,263 +2922,263 @@ msgid "# Defaults for quick (1 key) kill "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ÔÅËÕÝÕÀ ÔÅÍÕ ÉÌÉ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ\n" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# éÎÆÏÒÍÁÃÉÑ Ï ÈÏÓÔÅ É ×ÒÅÍÅÎÉ, ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ\n" "# ÎÏ×ÙÈ ÇÒÕÐÐ (ÎÅ ÉÚÍÅÎÑÔØ)\n" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "îÅÔ ÎÏ×ÏÓÔÅÊ\n" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "äÉÓËÕÓÓÉÑ" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÄÉÓËÕÓÓÉÊ" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "ó ÄÉÓËÕÓÓÉÉ ÓÎÑÔÁ ÏÔÍÅÔËÁ" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "äÉÓËÕÓÓÉÑ ×ÙÂÒÁÎÁ" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "ÄÉÓËÕÓÓÉÉ" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "äÉÁÐÁÚÏÎ ÄÉÓËÕÓÓÉÉ" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "ÄÉÓËÕÓÓÉÑ" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "äÉÓËÕÓÓÉÑ %4s ÉÚ %4s" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "òÁÚÂÏÒ ÄÉÓËÕÓÓÉÊ..." -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ÐÏÄÓ×ÅÔËÉ ÓÌÏ× %s" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ËÏÄÉÒÏ×ËÉ rot13" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ÎÅÍÅÃËÏÊ TeX ËÏÄÉÒÏ×ËÉ %s" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "ðÅÒÅËÌÀÞÅÎÉÅ ÛÉÒÉÎÙ ÔÁÂÕÌÑÃÉÉ ÎÁ %d" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d ÐÏÐÙÔËÁ dotlock %s" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "%d ðÏÐÙÔËÁ ÚÁÂÌÏËÉÒÏ×ÁÔØ %s" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr " h=ÐÏÍÏÝØ\n" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "îÅÏÇÒÁÎÉÞÅÎ" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " -msgstr "÷×ÅÄÉÔÅ wildcard ÛÁÂÌÏÎ ÄÌÑ ÏÔÐÉÓÙ×.> " +msgstr "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÏÔÐÉÓÙ×ÁÎÉÑ> " -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "ïÛÉÂËÁ ÒÁÓËÏÄÉÒÏ×ÁÎÉÑ %s : %s" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "îÅÔ ËÏÎÃÁ." -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "%s ÕÓÐÅÛÎÏ ÒÁÓËÏÄÉÒÏ×ÁÎ." -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[-- %s/%s, %suuencoded ÆÁÊÌ, %d ÓÔÒÏË, ÉÍÑ: %s --]\n" "\n" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "ÎÅÐÒÏÞÉÔÁÎÏ " -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "ÏÔÐÉÓÁÌÉÓØ ÏÔ %d ÇÒÕÐÐ" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "ïÔÐÉÓÁÌÉÓØ ÏÔ %s" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "ïÔÐÉÓÙ×ÁÅÍÓÑ... " -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "òÁÚÇÒÕÐÐÉÒÏ×ËÁ ÄÉÓËÕÓÓÉÊ..." -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "ïÂÎÏ×ÌÅÎÏ" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "ïÂÎÏ×ÌÅÎÉÅ" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "ïÔËÒÙÔÉÅ %s\n" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "îÅÔ ÂÏÌØÛÅ URL × ÓÔÁÔØÅ" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "÷ÙÚ×ÁÔØ ÐÒÏÇÒÁÍÍÕ, ÐÏËÁÚÙ×ÁÀÝÕÀ MIME ÄÌÑ ÓÔÁÔØÉ?" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" -msgstr " -c ÍÁÒË. ×ÓÅ ÎÏ×ÏÓÔÉ ËÁË ÐÒÏÞ. × ÐÏÄÐÉÓ. ÇÒÕÐÐÁÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" +msgstr " -c ÏÔÍÅÔÉÔØ ×ÓÅ ÎÏ×ÏÓÔÉ ËÁË ÐÒÏÞ. × ÐÏÄÐÉÓ. ÇÒÕÐÐÁÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr " -Z ×ÏÚ×ÒÁÔ ÓÔÁÔÕÓÁ Ï ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÎÏ×ÏÓÔÑÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" -msgstr " -q ÎÅ ÐÒÏ×ÅÒÑÔØ ÎÁ ÎÏ×ÙÅ ÇÒÕÐÐÙ ÎÏ×ÏÓÔÅÊ" +msgstr " -q ÎÅ ÐÒÏ×ÅÒÑÔØ ÐÏÑ×ÌÅÎÉÑ ÎÏ×ÙÈ ÇÒÕÐÐ ÎÏ×ÏÓÔÅÊ" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr " -X ÎÅ ÓÏÈÒÁÎÑÔØ ÆÁÊÌÙ ÐÒÉ ×ÙÈÏÄÅ" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" -msgstr " -d ÎÅ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ" +msgstr " -d ÎÅ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÑ ÇÒÕÐÐ" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr " -G limit ÐÏÌÕÞÉÔØ ÔÏÌØËÏ limit ÓÔÁÔÅÊ/ÇÒÕÐÐ" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr " -H ÐÏÄÓËÁÚËÁ Ï %s" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr " -h ÜÔÁ ÐÏÄÓËÁÚËÁ" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I dir ÄÉÒÅËÔÏÒÉÑ ÉÎÄÅËÓÎÏÇÏ ÆÁÊÌÁ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr " -u ÏÂÎÏ×ÉÔØ ÉÎÄÅËÓÎÙÅ ÆÁÊÌÙ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m dir ÄÉÒÅËÔÏÒÉÑ mailbox [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "ïÔÐÒÁ×ÌÑÊÔÅ ÏÛÉÂËÉ/ËÏÍÍÅÎÔÁÒÉÉ %s" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" -msgstr " -N ÏÔÐÒÁ×ÌÑÔØ ×ÁÍ ÎÏ×ÙÅ ÎÏ×ÏÓÔÉ ÎÁ ×ÁÛÉ ÓÏÏÂÝÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" +msgstr " -N ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÎÁ ×ÁÛÉ ÓÏÏÂÝÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" -msgstr " -M user ÏÔÐÒÁ×ÌÑÔØ ×ÁÍ ÎÏ×ÙÅ ÎÏ×ÏÓÔÉ ÕËÁÚÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ (ÐÁËÅÔÎÙÊ " +msgstr " -M user ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÕËÁÚÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ (ÐÁËÅÔÎÙÊ " "ÒÅÖÉÍ)" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f file ÆÁÊÌ ÐÏÄÐÉÓËÉ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr " -x ÒÅÖÉÍ ÚÁÐÒÅÔ ÏÔÐÒÁ×ÌÅÎÉÑ" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr " -w ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ É ×ÙÊÔÉ" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr " -o ÏÔÐÒÁ×ÉÔØ ×ÓÅ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ É ×ÙÊÔÉ" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" -msgstr " -r ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ ÕÄÁÌÅÎÏ Ó NNTP ÓÅÒ×ÅÒÁ, ÚÁÄÁÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ" +msgstr " -r ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ ÕÄÁÌÅÎÎÏ Ó NNTP ÓÅÒ×ÅÒÁ, ÚÁÄÁÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" -msgstr " -R ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ, ÓÏÈÒÁÎÅÎÎÙÅ -S ÏÐÃÉÅÊ" +msgstr " -R ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ, ÓÏÈÒÁΣÎÎÙÅ ÏÐÃÉÅÊ -S" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s dir ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÎÏ×ÏÓÔÅÊ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr " -S ÓÏÈÒÁÎÑÔØ ÎÏ×ÏÓÔÉ ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÇÏ ÐÒÏÞÔÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr " -z ÚÁÐÕÓÔÉÔØ ÅÓÌÉ ÅÓÔØ ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÎÏ×ÏÓÔÉ" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3174,37 +3187,42 @@ msgstr "ðÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÎÏ×ÏÓÔÅÊ Usenet "\n" "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr " -v ÄÅÔÁÌØÎÙÊ ×Ù×ÏÄ ÄÌÑ ÏÐÃÉÊ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" -msgstr " -V ÎÁÐÅÞÁÔÁÔØ ×ÅÒÓÉÀ É ÄÁÔÕ" +msgstr " -V ×Ù×ÅÓÔÉ ×ÅÒÓÉÀ É ÄÁÔÕ" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ ÂÅÚ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ\n" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ\n" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d ×ÎÅ ÄÉÁÐÁÚÏÎÁ (0 - %d). óÂÒÏÓ × 0" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "ðÒÏÓÍÏÔÒ '%s' (%s/%s)?" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3214,25 +3232,25 @@ msgstr "\n" "óÔÒÏËÁ %d - ÐÅÒ×ÁÑ ÄÌÉÎÎÁÑ ÓÔÒÏËÁ:\n" "%-100s\n" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: ÓÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ ÐÏÓÌÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ\n" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: \"Subject:\" ÓÏÄÅÒÖÉÔ ÏÄÎÉ ÐÒÏÂÅÌÙ.\n" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "\n" - "ðÒÅÄÅÐÒÅÖÄÅÎÉÅ: \"Subject:\" ÎÁÞÉÎÁÅÔÓÑ Ó \"Re: \" ÎÏ ÎÅÔ \"References:\".\n" + "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: \"Subject:\" ÎÁÞÉÎÁÅÔÓÑ Ó \"Re: \" ÎÏ ÎÅÔ \"References:\".\n" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3240,7 +3258,7 @@ msgstr "\n" "÷ÎÉÍÁÎÉÅ: × ÓÔÁÔØÅ ÅÓÔØ \"References:\" ÎÏ \"Subject:\"\n" " ÎÅ ÎÁÞÉÎÁÅÔÓÑ Ó \"Re: \" É ÎÅ ÓÏÄÅÒÖÉÔ \"(was:\".\n" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3260,7 +3278,7 @@ msgstr "ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n" "÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n" "\n" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3268,10 +3286,11 @@ msgid "\n" " not be encoded properly.\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: ÷Ù ÉÓÐÏÌØÚÕÅÔÅ ËÏÄÉÒÏ×ÁÎÉÅ ÓÏÏÂÝÅÎÉÑ (base64 ÉÌÉ quoted-printable)\n" - " É ×ÎÅÛÎÀÀ inews ÐÒÏÇÒÁÍÍÕ ÄÌÑ ÐÏÓÙÌËÉ ÎÏ×ÏÓÔÅÊ. åÓÌÉ ÐÏÄÐÉÓØ ÂÕÄÅÔ\n" + " É ×ÎÅÛÎÀÀ inews ÐÒÏÇÒÁÍÍÕ ÄÌÑ ÏÔÐÒÁ×ËÉ ÎÏ×ÏÓÔÅÊ. åÓÌÉ ÐÏÄÐÉÓØ " + "ÂÕÄÅÔ\n" " ÄÏÂÁ×ÌÅÎÁ ÜÔÏÊ ÐÒÏÇÒÁÍÍÏÊ, ÏÎÁ ÎÅ ÂÕÄÅÔ ËÏÒÒÅËÔÎÏ ÚÁËÏÄÉÒÏ×ÁÎÁ.\n" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3284,7 +3303,7 @@ msgstr "\n" "îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÑ × ×ÁÛÅÍ %s ÆÁÊÌÅ ÉÚÍÅÎÉÌÉÓØ!\n" "ðÒÏÞÉÔÁÊÔÅ WHATSNEW, É Ô.Ä...\n" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3296,7 +3315,7 @@ msgstr "\n" "îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÅÑ × ÆÁÊÌÅ %s ÍÏÇÕÔ ÂÙÔØ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ,\n" "ÄÒÕÇÉÅ ÍÏÇÌÉ ÂÙÔØ ÉÚÍÅÎÅÎÙ!\n" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3305,7 +3324,7 @@ msgid "Warning: tin wrote fewer groups t "before you start tin once again!\n" msgstr "" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" @@ -3313,12 +3332,12 @@ msgstr "\n" "÷ÎÉÍÁÎÉÅ: ÏÂÎÁÒÕÖÅÎÏ %d '-- \\n' ÓÔÒÏË, ÜÔÏ ÍÏÖÅÔ ÕÄÉ×ÉÔØ ÎÅËÏÔÏÒÙÈ " "ÐÏÌØÚÏ×ÁÔÅÌÅÊ.\n" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "÷ÎÉÍÁÎÉÅ: óÏÈÒÁÎÅÎÙ ÔÏÌØËÏ %d ÉÚ %d ÓÔÁÔÅÊ" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3328,52 +3347,51 @@ msgid "\n" " possible.\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: ÷ÁÛÁ ÐÏÄÐÉÓØ ÄÌÉÎÎÅÅ %d ÓÔÒÏË. ôÁË ËÁË ÐÏÄÐÉÓÉ ÏÂÙÞÎÏ ÎÅ ÐÅÒÅÄÁÀÔ\n" - " ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÏÎÉ ÄÏÌÖÎÙ ÂÙÔØ ËÏÒÏÔËÉÍÉ ÎÁÓÔÏÌØËÏ, " - "ÎÁÓËÏÌØËÏ\n" - " ÜÔÏ ×ÏÚÍÏÖÎÏ.\n" + " ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÏÎÉ ÄÏÌÖÎÙ ÂÙÔØ ËÏÒÏÔËÉÍÉ ÎÁÓÔÏÌØËÏ,\n" + " ÎÁÓËÏÌØËÏ ÜÔÏ ×ÏÚÍÏÖÎÏ.\n" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "÷ÎÉÍÁÎÉÅ: ÁÄÒÅÓ email ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ spamtrap. %s=ÐÒÏÄÏÌÖÉÔØ, %s=ÓÔÏÐ? " -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: óÉÇÎÁÔÕÒÙ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó '-- \\n' ÎÅ Ó '--\\n'.\n" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "úÁÐÉÓØ ÆÁÊÌÁ ÁÔÒÉÂÕÔÏ×..." -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "%d ÏÔ×ÅÔÏ×" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "äÏÂÁ×ÌÅÎÏ %d %s" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "îÅÔ ÏÔÐÉÓÁÎÎÙÈ ÇÒÕÐÐ ÄÌÑ ×Ù×ÏÄÁ" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" -msgstr "ðÏËÁÚ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÈ ÎÁ ÛÒÕÐÐÕ" +msgstr "ðÏËÁÚ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÈ ÎÁ ÇÒÕÐÐÕ" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "äÁ " -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr " îÏ×ÁÑ ÐÏÞÔÁ\n" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3391,11 +3409,11 @@ msgstr "\n" " ÏÔÒÅÄÁËÔÉÒÕÊÔŠţ É ÕÂÅÒÉÔÅ ÜÔÉ ÓÉÍ×ÏÌÙ ÉÌÉ ÉÚÍÅÎÉÔÅ × M)ÅÎÀ\n" " ÚÎÁÞÅÎÉÅ MM_NETWORK_CHARSET ÎÁ ÐÏÄÈÏÄÑÝÅÅ.\n" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D ÒÅÖÉÍ ÏÔÌÁÄËÉ 1=NNTP 2=÷ó³" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3420,11 +3438,11 @@ msgstr "ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n" "÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n" "\n" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "ÉÚÍÅÎÉÔØ Ã×ÅÔ" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3450,7 +3468,7 @@ msgstr "# éÚÍÅÎÅÎÉÅ Ã×ÅÔÏ× ÄÌÑ ÒÁÚÌÉÞÎÙÈ "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ:\n" "# -1 = ÐÏ ÕÍÏÌÞÁÎÉÀ (ÂÅÌÙÊ ÄÌÑ ÓÉÍ×ÏÌÏ× É Þ£ÒÎÙÊ ÄÌÑ ÆÏÎÁ)\n" "# 0 = Þ£ÒÎÙÊ\n" - "# 1 = ËÒÁÞÎÙÊ\n" + "# 1 = ËÒÁÓÎÙÊ\n" "# 2 = ÚÅÌ£ÎÙÊ\n" "# 3 = ËÏÒÉÞÎÅ×ÙÊ\n" "# 4 = ÓÉÎÉÊ\n" @@ -3468,358 +3486,358 @@ msgstr "# éÚÍÅÎÅÎÉÅ Ã×ÅÔÏ× ÄÌÑ ÒÁÚÌÉÞÎÙÈ "# 15 = Ó×ÅÔÌÏ-ÂÅÌÙÊ\n" "\n" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr " -a ÉÚÍÅÎÉÔØ Ã×ÅÔ" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "\n" "ïÛÉÂËÁ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "ïÛÉÂËÁ: ËÒÏÓÓ-ÐÏÓÔÉÎÇÁ × %d ÇÒÕÐÐÙ ÂÅÚ Followup-To ÓÔÒÏËÉ!\n" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "ïÛÉÂËÁ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÇÒÕÐÐÁ!\n" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: ËÒÏÓÓ-ÐÏÓÔÉÎÇ × %d ÇÒÕÐÐÙ ÂÅÚ Followup-To ÓÔÒÏËÉ!\n" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: \"%s\" ÎÅ × newsrc É ÍÏÖÅÔ ÂÙÔØ ÏÛÉÂÏÞÎÁ ÎÁ ÜÔÏÍ ÍÅÓÔÅ!\n" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ!\n" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." -msgstr "%d ÆÁÊÌÏ× ÕÓÐÅÛÎÏ ÚÁÐÉÓÁÎÙ ÉÚ %d ÓÔÁÔÅÊ. %d %s ÓÌÕÞÉÌÏÓØ." +msgstr "%d ÆÁÊÌÏ× ÕÓÐÅÛÎÏ ÚÁÐÉÓÁÎÙ ÉÚ %d ÓÔÁÔÅÊ. %d %s." -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "ðÒÏÐÕÝÅÎÙ ÞÁÓÔÉ." -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "îÅÔ ÎÁÞÁÌÁ." -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "îÅÔ ÄÁÎÎÙÈ." -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ." -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tëÏÎÔÒÏÌØÎÁÑ ÓÕÍÍÁ %s (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "þÔÅÎÉÅ ÆÁÊÌÁ mailgroups... " -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "×ÙÐÏÌÎÉÔØ PGP ÏÐÅÒÁÃÉÉ ÓÏ ÓÔÁÔØÅÊ" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "äÏÂÁ×ÉÔØ ËÌÀÞ(É) Ë ÏÔËÒÙÔÙÍ ËÌÀÞÁÍ?" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ, %s=ÏÂÁ, %s=×ÙÈÏÄ: " -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ É ×ÌÏÖÉÔØ ÏÔËÒÙÔÙÊ ËÌÀÞ, %s=×ÙÈÏÄ: " -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP ÎÅ ÕÓÔÁÎÏ×ÌÅÎ (ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ %s)" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "óÔÁÔØÑ ÎÅ ÐÏÄÐÉÓÁÎÁ É ÏÔËÒÙÔÙÊ ËÌÀÞ ÎÅ ÎÁÊÄÅÎ" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ: " -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " -msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÐÏÓÌÁÔØ [%%s]: " +msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: " -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ [%%s]: " -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " -msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔÉ×ÁÔØ, %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ: " +msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔ., %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: " -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: " -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: " -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: " -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: " -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " -msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=postpone [%%s]: " +msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: " -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ: " -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÏÔÐÒÁ×ÉÔØ [%%s]: " -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: " -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "ðÏÐÒÏÂÕÊÔÅ cache_overview_files ÄÌÑ ÕÓËÏÒÅÎÉÑ.\n" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" -msgstr "tin ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÁÊÌÙ ÌÏËÁÌØÎÏÇÏ ÉÎÄÅËÓÁ ×ÍÅÓÔÏ ÜÔÏÇÏ.\n" +msgstr "Tin ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÁÊÌÙ ÌÏËÁÌØÎÏÇÏ ÉÎÄÅËÓÁ.\n" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÉÍÑ NNTP ÓÅÒ×ÅÒÁ" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "óÏÅÄÉÎÅÎÉÅ Ó %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "ïÔÓÏÅÄÉÎÅÎÉÅ ÏÔ ÓÅÒ×ÅÒÁ...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "îÅÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÇÒÕÐÐÙ × ÏÔ×ÅÔÅ ÎÁ ËÏÍÁÎÄÕ GROUP, %s ÄÌÑ %s" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "îÅ ÕÄÁÌÏÓØ ÓÏÅÄÉÎÉÔØÓÑ Ó NNTP ÓÅÒ×ÅÒÏÍ %s. ÷ÙÈÏÄ..." -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "205 úÁËÒÙÔÉÅ ÓÏÅÄÉÎÅÎÉÑ" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "óÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ NNTP XOVER ÉÌÉ OVER ËÏÍÁÎÄÙ.\n" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" -msgstr "÷ÒÅÍÑ ÓÏÅÄÉÎÅÎÉÑ Ë ÓÅÒ×ÅÒÕ ÐÒÅ×ÙÓÉÌÏ ÌÉÍÉÔ. ðÅÒÅÓÏÅÄÉÎÉÔØÓÑ?" +msgstr "÷ÒÅÍÑ ÓÏÅÄÉÎÅÎÉÑ Ë ÓÅÒ×ÅÒÕ ÐÒÅ×ÙÓÉÌÏ ÌÉÍÉÔ. ðÏÄËÌÀÞÉÔØÓÑ ÅÝ£ ÒÁÚ?" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "ðÏÍÅÓÔÉÔØ ÉÍÑ ÓÅÒ×ÅÒÁ × ÆÁÊÌ %s,\n" "ÉÌÉ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ ÏËÒÕÖÅÎÉÑ NNTPSERVER" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr " -A ÐÒÉÎÕÄÉÔÅÌØÎÁÑ ÁÕÔÅÎÔÉÆÉËÁÃÉÑ ÐÒÉ ÓÏÅÄÉÎÅÎÉÉ" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv ÞÔÅÎÉÅ ÎÏ×ÏÓÔÅÊ Ó NNTP ÓÅÒ×ÅÒÁ serv [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port ÉÓÐÏÌØÚÏ×ÁÔØ port ËÁË NNTP ÐÏÒÔ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%d]" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr " -Q ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ëÁË Ó ÏÐÃÉÑÍÉ -nqd" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" -msgstr " -l ÉÓÐÏÌØÚÏ×ÁÔØ LIST ×ÍÅÓÔÏ GROUP (-n) ËÏÍÁÎÄ" +msgstr " -l ÉÓÐÏÌØÚÏ×ÁÔØ LIST ×ÍÅÓÔÏ ËÏÍÁÎÄÙ GROUP (-n)" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ Ó NNTP ÓÅÒ×ÅÒÁ" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: îÅÉÚ×ÅÓÔÎÙÊ ÓÅÒ×ÉÓ.\n" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "\n" - "ÐÒÏÂÌÅÍÁ Ó ÓÏËÅÔÏÍ ÉÌÉ Ó ÓÏÅÄÉÎÅÎÉËÍ\n" + "ÐÒÏÂÌÅÍÁ Ó ÓÏËÅÔÏÍ ÉÌÉ Ó ÓÏÅÄÉÎÅÎÉÅÍ\n" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "óÏÅÄÉÎÅÎÉÅ Ó %s: " -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "ðÒÅËÒÁÝÁÅÍ...\n" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "÷ÁÛ ÓÅÒ×ÅÒ ÎÅ ÓÏÄÅÒÖÉÔ Xref: × Ó×ÏÅÊ ÉÎÆÏÒÍÁÃÉÉ XOVER.\n" "Tin ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ XHDR XREF (ÞÕÔØ ÍÅÄÌÅÎÅÅ).\n" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "óÅÒ×ÅÒ ÎÅ ÓÏÄÅÒÖÉÔ Xref: × XOVER.\n" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s. ðÏÐÒÏÂÕÊÔÅ %s -r ÄÌÑ ÞÔÅÎÉÑ ÎÏ×ÏÓÔÅÊ ÐÏ NNTP.\n" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr " -Q ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ôÏ ÖÅ ÓÁÍÏÅ ËÁË Ó ÏÐÃÉÑÍÉ -qd" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr " -l ÞÉÔÁÔØ ÔÏÌØËÏ ÆÁÊÌ active ×ÍÅÓÔÏ ÓËÁÎÉÒÏ×ÁÎÉÑ spool (-n) ËÏÍÁÎÄÙ" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ ÉÚ spool" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" -msgstr "÷ÁÛ ÓÅÒ×ÅÒ ÎÅ ÉÍÅÅÔ Xref: × NOV-ÆÁÊÌÁÈ.\n" +msgstr "÷ÁÛ ÓÅÒ×ÅÒ ÎÅ ÉÍÅÅÔ Xref: × NOV-ÆÁÊÌÁÈ.\n" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "ïÔÐÒÁ×ÌÅÎÉÅ Ó ×ÎÅÛÎÉÍ inews ÐÒÏ×ÁÌÉÌÏÓØ. éÓÐÏÌØÚÏ×ÁÔØ ×ÓÔÒÏÅÎÎÙÊ inews" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "úÁÒÁÂÏÔÁÌÏ! éÓÐÏÌØÚÏ×ÁÔØ ×ÓÅÇÄÁ ÓÄÅÌÁÎÎÙÊ inews?" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "%d %s ÎÁÐÅÞÁÔÁÎÏ" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "×Ù×ÏÄ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ/hot/ÛÁÂÌÏÎÁ/ÐÏÍÅÞÅÎÎÙÈ ÓÔÁÔÅÊ ÎÁ ÐÅÞÁÔØ" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "ðÅÞÁÔØ" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "ðÅÞÁÔÁÀ..." -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "pipe ÓÔÁÔØÀ/ÄÉÓËÕÓÓÉÀ/hot/ÛÁÂÌÏÎ/ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ËÏÍÁÎÄÕ" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "îÅÔ ËÏÍÁÎÄÙ" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Pipe × ËÏÍÁÎÄÕ [%.*s]> " -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "" -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "Piping ÎÅ ×ËÌÀÞÅÎ." -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3832,7 +3850,7 @@ msgstr "\n" " É ÓÏÄÅÒÖÉÍÏÅ. éÓÐÏÌØÚÕÊÔÅ ÚÁÐÑÔÕÀ (,) ÄÌÑ ÒÁÚÄÅÌÅÎÉÑ\n" " ÎÅÓËÏÌØËÉÈ ÉÍÅÎ ÇÒÕÐÐ.\n" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3843,7 +3861,7 @@ msgstr "\n" " ÔÁË ËÁË ÓÔÒÏËÁ ÎÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÐÒÏÂÅÌÏ×.\n" " ðÏÖÁÌÕÊÓÔÁ ÚÁÐÉÓÙ×ÁÅÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3854,14 +3872,14 @@ msgstr "\n" " üÔÏ ÎÏ×ÏÅ Ó×ÏÊÔÓ×Ï É ÍÏÖÅÔ ÐÏÄÄÅÒÖÉ×ÁÔØÓÑ ÎÅ ×ÓÅÍÉ ÓÅÒ×ÅÒÁÍÉ.\n" " þÔÏÂÙ ÉÚÂÅÖÁÔØ ÐÒÏÂÌÅÍ, ÚÁÐÉÓÙ×ÁÊÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "\n" "÷ÎÉÍÁÎÉÅ: ÓÔÒÏËÁ \"%s:\" ÓÏÄÅÒÖÉÔ ÐÒÏÂÅÌÙ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ ÕÂÒÁÎÙ.\n" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3882,505 +3900,527 @@ msgid "\n" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "×ÙÈÏÄ × ÏÂÏÌÏÞËÕ" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "ëÏÍÁÎÄÁ ÏÂÏÌÏÞËÉ (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "÷×ÅÄÉÔÅ ËÏÍÁÎÄÕ ÏÂÏÌÏÞËÉ [%s]> " -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s: îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÚÁÐÉÓØ ÄÌÑ TERM\n" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "çÒÕÐÐÁ %.*s ('q' ÞÔÏÂÙ ×ÙÊÔÉ)..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." -msgstr "çÒÕÐÐÁ %.*s.." +msgstr "çÒÕÐÐÁ %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "óÅÒ×ÅÒ ÎÅ ÄÏÓÔÕÐÅÎ\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=pipe; %s=mail; %s=ÐÅÞÁÔØ; %s=×ÙÈÏÄ; %s=toggle all/unread; %s=ÓÏÈÒ.; %" "s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=ÐÅÞÁÔØ; %s=×ÙÈÏÄ; %s=reply mail; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %" "s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=ÐÅÞÁÔØ; %s=×ÙÈÏÄ; %s=toggle all/unread; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %" "s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=ÐÅÞÁÔØ; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=×ÙÈÏÄ; %s=toggle all/unread; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %" "s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=mail; %s=×ÙÈÏÄ; %s=toggle all/unread; %s=ÓÏÈÒ.; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" -msgstr "%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÚÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" +msgstr "%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "ôÅÒÍÉÎÁÌ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ Ã×ÅÔ" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "îÉÞÅÇÏ" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "ôÅÍÁ" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "ôÅÍÁ É References" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "óÏ×ÐÁÄÅÎÉÑ ÐÏ ÐÒÏÃÅÎÔÁÍ" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "îÅÔ" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "äÁ" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "óËÒÙÔØ ×ÓÅ" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "áÄÒÅÓ" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "ðÏÌÎÏÅ ÉÍÑ" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "áÄÒÅÓ É ÉÍÑ" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "íÁËÓÉÍÁÌØÎÙÊ" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "óÕÍÍÁ" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "óÒÅÄÎÉÊ" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "óÔÒÏËÉ" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "óÔÒÏËÉ É Score" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "þÅÒÎÙÊ" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "ëÒÁÓÎÙÊ" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "úÅÌ£ÎÙÊ" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "ëÏÒÉÞÎÅ×ÙÊ" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "óÉÎÉÊ" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "òÏÚÏ×ÙÊ" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "çÏÌÕÂÏÊ" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "âÅÌÙÊ" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "óÅÒÙÊ" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "ó×ÅÔÌÏ-ËÒÁÓÎÙÊ" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "ó×ÅÔÌÏ-ÚÅÌ£ÎÙÊ" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "ö£ÌÔÙÊ" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "ó×ÅÔÌÏ-ÓÉÎÉÊ" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "ó×ÅÔÌÏ-ÂÅÌÙÊ" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "îÉÞÅÇÏ" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "ìÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "ðÏÄÞÅÒËÉ×ÁÎÉÅ" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "òÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "íÉÇÁÎÉÅ" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "ÎÉÞÅÇÏ" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "ËÏÍÁÎÄÙ" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "×ÙÂÏÒ" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "ËÏÍÁÎÄÙ É ×ÙÈÏÄ" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "ËÏÍÁÎÄÙ É ×ÙÂÏÒ" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "×ÙÈÏÄ É ×ÙÂÏÒ" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "ËÏÍÁÎÄÙ, ×ÙÈÏÄ É ×ÙÂÏÒ" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "ôÅÍÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "ôÅÍÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "From: (ÐÏ ÕÂÙ×ÁÎÉÀ)" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "From: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "äÁÔÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "äÁÔÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "Score (ÐÏ ÕÂÙ×ÁÎÉÀ)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" -msgstr "Score (ÐÏ ×ÏÚÓÒÁÓÔÁÎÉÀ)" +msgstr "Score (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ÕÂÙ×ÁÎÉÀ)" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" -#: src/lang.c:1248 +#: src/lang.c:1256 +#, fuzzy +msgid "Last posting date (descending)" +msgstr "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ÕÂÙ×ÁÎÉÀ)" + +#: src/lang.c:1257 +#, fuzzy +msgid "Last posting date (ascending)" +msgstr "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "õÎÉÞÔÏÖÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÐÏËÁÚ. Ó K" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÎÅ ÐÏËÁÚ." -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "ÎÅÔ" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "Ó ÚÁÇÏÌÏ×ËÁÍÉ" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "ÂÅÚ ÚÁÇÏÌÏ×ËÏ×" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "ïÐÃÉÉ ×Ù×ÏÄÁ" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "ïÐÃÉÉ ÒÁÂÏÔÙ Ó Ã×ÅÔÏÍ" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "ïÐÃÉÉ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ/ÐÉÓÅÍ" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "ïÐÃÉÉ ÓÏÈÒÁÎÅÎÉÑ É ÐÅÞÁÔÉ" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "üËÓÐÅÒÔÎÙÅ ÏÐÃÉÉ" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "ïÐÃÉÉ ÆÉÌØÔÒÁÃÉÉ" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr "<ðòïâåì> ×ÙÂÒÁÔØ, ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "ðÏËÁÚÙ×ÁÔØ ÍÉÎÉ-ÍÅÎÀ É ÜÔÉËÅÔ ÏÂÝÅÎÉÑ" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ËÏÒÏÔËÏÅ ÏÐÉÓÁÎÉÅ ÄÌÑ ËÁÖÄÏÊ ÇÒÕÐÐÙ\n" "# É ÐÒÁ×ÉÌÁ ÓÅÔÅ×ÏÇÏ ÜÔÉËÅÔÁ ÐÏÓÌÅ ÓÏÚÄÁÎÉÑ ÓÔÁÔØÉ\n" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "ðÏËÁÚÙ×ÁÔØ ËÏÒÏÔËÏÅ ÏÐÉÓÁÎÉÑ ÄÌÑ ËÁÖÄÏÊ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "ðÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐ" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ ÐÏÓÌÅ ÉÍÅÎÉ ÇÒÕÐÐÙ ×\n" "# ÒÅÖÉÍÅ ×ÙÂÏÒÁ ÇÒÕÐÐÙ\n" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "÷Ù×ÏÄ ôÅÍÙ É á×ÔÏÒÁ × ÍÅÎÀ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "÷ ÍÅÎÀ ÇÒÕÐÐÙ ÐÏËÁÚÁÔØ Á×ÔÏÒÁ ËÁË" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4394,32 +4434,32 @@ msgstr "# ÷Ù×ÏÄÉÔØ ÞÁÓÔØ ÐÏÌÑ From:\n" "# * 2 = ÐÏÌÎÏÅ ÉÍÑ\n" "# 3 = ÁÄÒÅÓ É ÐÏÌÎÏÅ ÉÍÑ\n" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." -msgstr "÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔØ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." +msgstr "÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" -msgstr "÷Ù×Ï×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ." +msgstr "÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ." -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" -msgstr "# åÓÌÉ ON, ÔÏ ×Ù×Ï×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ\n" +msgstr "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ\n" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "éÎ×ÅÒÓÎÙÊ ×ÉÄÅÏ ÒÅÖÉÍ ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÓÔÒÁÎÉÃ" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎ×ÅÒÓÉÀ Ã×ÅÔÏ× ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÎÁ\n" "# ÒÁÚÌÉÞÎÙÈ ÕÒÏ×ÎÑÈ\n" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4429,7 +4469,7 @@ msgid "# Thread articles by ...\n" "# 4 = Multipart Subject\n" "# 5 = Percentage Match\n" msgstr "# çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ...\n" - "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" "# 0 = ÎÉÞÅÇÏ\n" "# 1 = ôÅÍÁ\n" "# 2 = References\n" @@ -4437,16 +4477,16 @@ msgstr "# çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ...\n" "# 4 = Multipart Subject\n" "# 5 = óÏ×ÐÁÄÅÎÉÅ ÐÏ ÐÒÏÃÅÎÔÁÍ\n" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "÷×ÅÄÉÔÅ ÎÅÏÂÈÏÄÉÍÙÊ ÐÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÂßÅÄÉÎÅÎÉÑ × ÄÉÓËÕÓÓÉÀ. " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "ðÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÉÓËÕÓÓÉÉ" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4459,11 +4499,11 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "Score ÄÉÓËÕÓÓÉÉ" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4475,16 +4515,16 @@ msgstr "# Score ÄÉÓËÕÓÓÉÉ\n" "# 1 = ÓÕÍÍÁ\n" "# 2 = ÓÒÅÄÎÅÅ\n" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ôÅÍÅ, From, äÁÔÅ ÉÌÉ Score. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4498,7 +4538,7 @@ msgid "# Sort articles by ...\n" "# 8 = Score ascending\n" "# 9 = Lines descending\n" "# 10 = Lines ascending\n" -msgstr "# óÏÒÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ...\n" +msgstr "# óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ...\n" "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" "# 0 = ÎÉÞÅÇÏ\n" "# 1 = ôÅÍÁ ÐÏ ÕÂÙ×ÁÎÉÀ\n" @@ -4512,68 +4552,71 @@ msgstr "# óÏÒÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ...\n" "# 9 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ÕÂÙ×ÁÎÉÀ\n" "# 10 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "îÅ ÓÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÉÌÉ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏ Score. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "óÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÐÏ" -#: src/lang.c:1466 +#: src/lang.c:1480 +#, fuzzy msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" -msgstr "# óÏÒÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÀ ÐÏ...\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" +msgstr "# óÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÀ ÐÏ...\n" "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" "# 0 = ÎÉÞÅÇÏ\n" "# * 1 = Score ÐÏ ÕÂÙ×ÁÎÉÀ\n" "# 2 = Score ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "õÓÔ. ËÕÒÓÏÒ ÎÁ ÐÅÒ×ÕÀ/ÐÏÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÀ × ÇÒÕÐÐÁÈ. <ðòïâåì> ×ÙÂÏÒ, " " ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "ðÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞ. ÓÔÁÔØÅ × ÇÒÕÐÐÅ" -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# åÓÌÉ ON ÔÏ ÐÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ × ÇÒÕÐÐÅ,\n" "# ÉÎÁÞÅ Ë ÐÅÒÅÊÔÉ Ë ÐÏÓÌÅÄÎÅÊ.\n" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "ðÏËÁÚÙ×ÁÔØ ×ÓÅ ÓÔÁÔØÉ ÉÌÉ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" -msgstr "ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔ. ÓÔÒÁÔØÉ" +msgstr "ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÉ" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÏ×ÙÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ,\n" "# ÉÎÁÞÅ ÐÏËÁÚÙ×ÁÔØ ×ÓÅ.\n" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞ. ÓÔÁÔØÑÍÉ" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞÔ£ÎÎÙÍÉ ÓÔÁÔØÑÍÉ.\n" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "óÔÁÔØÉ ÄÌÑ ÆÉÌØÔÒÁÃÉÉ" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4581,209 +4624,190 @@ msgid "# Filter which articles\n" "# 2 = kill all articles and never show them\n" msgstr "" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "Tab - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ" - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" +#: src/lang.c:1519 +msgid "Go to the next unread article with" msgstr "" -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "ðÒÏËÒÕÔËÁ <ðòïâåìïí> ÄÏ ËÏÎÃÁ ÓÔÁÔØÉ, ÚÁÔÅÍ ÐÅÒÅÈÏÄ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÀ." - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "ðÒÏÂÅÌ - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ" - -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" msgstr "" -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "ðÒÏËÒÕÔËÁ / ÄÏ ËÏÎÃÁ ÓÔÁÔØÉ, ÚÁÔÅÍ ÐÅÒÅÈÏÄ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞ. " - "ÓÔÁÔØÀ." - -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "PgDn - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ" - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "# åÓÌÉ ON, ÔÏ ÐÒÉ ÎÁÖÁÔÉÉ × ËÏÎÃÅ ÓÏÏÂÝÅÎÉÑ ÎÁ PGDN É DOWN ÐÅÒÅÊÔÉ\n" - "# Ë ÓÌÅÄÕÀÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ.\n" - -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "òÁÚ×ÅÒÎÕÔØ ÄÉÓËÕÓÓÉÀ ÐÒÁ×ÏÊ ÓÔÒÅÌËÏÊ" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ. ÕÓÔÁÎÏ×ÉÔØ, " "ÏÔÍÅÎÉÔØ." -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÏÚ×Ò. ÓÔÁÔÅÊ" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ. ××ÏÄ, ÏÔÍÅÎÁ." -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ. ××ÏÄ, ÏÔÍÅÎÁ." -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÏÊ ÓÔÁÔØÉ (ÐÏ ÕÍÏÌÞÁÎÉÀ 'o')\n" "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. ××ÏÄ, ÏÔÍÅÎÁ." -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ '+')\n" "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." -msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÉÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." +msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ ' ')\n" "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." -msgstr "íÁÓËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉͣΠÇÒÕÐÐ ÐÒÉ ×Ù×ÒÌÅ. ÕÓÔÁÎÏ×ÉÔØ." +msgstr "íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉͣΠÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "íÁËÓ. ÄÌÉÎÁ ÉͣΠÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉͣΠÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ\n" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "ðÏËÁÚÙ×ÁÔØ ÓÔÒÏËÉ/score × ÌÉÓÔÉÎÇÅ" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = lines\n" "# 2 = score\n" "# 3 = lines & score\n" -msgstr "" +msgstr "# ëÁËÁÑ ÉÎÆÏÒÍÁÃÉÑ ÄÏÌÖÎÁ ×Ù×ÏÄÉÔÓÑ × ÓÐÉÓËÅ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n" + "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# 0 = ÎÉÞÅÇÏ\n" + "# * 1 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË\n" + "# 2 = score\n" + "# 3 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË É score\n" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 = ÐÒÏËÒÕÔËÁ ×ÓÅÊ ÓÔÒÁÎÉÃÙ, -1 = ÐÒÅÄÙÄÕÝÁÑ ÐÏÓÌÅÄÎÑÑ ÓÔÒÏËÁ ËÁË ÐÅÒ×ÁÑ ÎÁ " "ÓÌÅÄÕÀÝÅÊ ÓÔÒÁÎÉÃÅ, -2 = ÐÏÌÓÔÒÁÎÉÃÙ" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "þÉÓÌÏ ÓÔÒÏË ÐÒÏËÒÕÔËÉ × ÐÅÊÄÖÅÒÅ" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4793,28 +4817,28 @@ msgid "# Number of lines that cursor-up/ "# 2 or greater = scroll by 2 or more lines (only in the pager)\n" msgstr "" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "# åÓÌÉ OFF, ÔÏ ÎÅ ×Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ ÐÒÉ ×Ù×ÏÄÅ ÓÔÁÔÅÊ\n" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "÷Ù×ÏÄÉÔØ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "÷Ù×ÏÄÉÔØ UUE ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4824,28 +4848,28 @@ msgid "# Handling of uuencoded data in t "# be folded into a tag line.\n" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "÷Ù×ÏÄÉÔØ \"a ËÁË Umlaut-a" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" -msgstr "óÐÉÓÏË ÐÏÌÅÊ ÚÁÇÏÌÏ×ËÁ, ÒÁÚÄÅÌ£ÎÎÙÊ ÐÒÏÂÅÌÁÍÉ" +msgstr "óÐÉÓÏË ÐÏÌÅÊ ÚÁÇÏÌÏ×ËÁ, ÒÁÚÄÅÌ£ÎÎÙÅ ÐÒÏÂÅÌÁÍÉ" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "ðÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ (ÉÌÉ *)" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -4854,11 +4878,11 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "îÅ ÐÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -4869,581 +4893,611 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "èÏÔÉÔÅ ×ËÌÀÞÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÕÀ ÏÂÒÁÂÏÔËÕ multipart/alternative ÓÔÁÔÅÊ?" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "ðÒÏÐÕÓËÁÔØ multipart/alternative ÞÁÓÔÉ" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "çÅÇ. ×ÙÒ. ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "òÅÇ. ×ÙÒ. ÄÌÑ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "òÅÇ. ×ÙÒ. ÄÌÑ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË >= 3 ÒÁÚ" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ *ÔÅËÓÔÁ*" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ _ÔÅËÓÔÁ_" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "" -#: src/lang.c:1738 -msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." +#: src/lang.c:1745 +msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." +msgstr "" + +#: src/lang.c:1746 +msgid "Regex with Subject suffixes" +msgstr "" + +#: src/lang.c:1747 +msgid "# A regular expression that tin will use to find Subject suffixes\n" + "# which will be removed when replying or posting followup.\n" +msgstr "" + +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." msgstr "" -#: src/lang.c:1739 -msgid "Regex with Subject suffixes" +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" msgstr "" -#: src/lang.c:1740 -msgid "# A regular expression that tin will use to find Subject suffixes\n" - "# which will be removed when replying or posting followup.\n" +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ ×ÎÅÛÎÅÇÏ ÐÒÏÓÍÏÔÒ. MIME, --internal ÄÌÑ ×ÓÔÒÏÅÎÎÏÇÏ " "ÐÒÏÓÍÏÔÒ." -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "ðÒÏÓÍÏÔÏÒÝÉË ÓÏÄÅÒÖÉÍÏÇÏ Ä×ÏÉÞÎÏÇÏ MIME" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "ðÏÄÔ×ÅÒÖÄÁÔØ ÓÔÁÒÔ ÐÒÏÓÍÏÔÏÒÝÉËÁ ÎÅÔÅËÓÔÏ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "óÐÒÏÓÉÔØ Ï ÉÓÐÏÌ. ÐÒÏÓÍÏÔÒ. MIME" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "óÐÒÏÓÉÔØ Ï ÏÔÍÅÔËÅ ÇÒÕÐÐ ËÁË ÐÒÏÞÉÔ. ÐÒÉ ×ÙÈÏÄÅ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" -msgstr "# åÓÌÉ ON, ÔÏ ÓÐÒÏÞÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÏÌÖÎÙ ÌÉ ÂÙÔØ ×ÓÅ ÇÒÕÐÐÙ\n" +msgstr "# åÓÌÉ ON, ÔÏ ÓÐÒÏÓÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÏÌÖÎÙ ÌÉ ÂÙÔØ ×ÓÅ ÇÒÕÐÐÙ\n" "# ÐÏÍÅÞÅÎÙ ËÁË ÐÒÏÞÔ£ÎÎÙÅ.\n" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" -msgstr "" +msgstr "# ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ.\n" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "ðÒÏÇÒÁÍÍÙ ÄÌÑ ÏÔËÒÙÔÉÑ URL. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ" -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "# ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL. óÁÍ URL ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎ × ËÏÎÅÃ\n" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm ÔÅÒÍÉÎÁÌÁÈ\n" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "éÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ keypad" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ ÎÅËÏÔÏÒÙÈ ÔÅÒÍÉÎÁÌÁÈ\n" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." -msgstr "÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÐÏÌÕÞÅÎÉÑ. ÕÓÔÁÎÏ×ÉÔØ." +msgstr "÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" -msgstr "þÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÐÏÌÕÞÅÎÉÑ" +msgstr "þÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "ìÉÍÉÔ ×ÒÅÍÅÎÉ ÄÌÑ ÎÏ×ÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "# þÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. (0=OFF)\n" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." -msgstr "" +msgstr "WILDMAT ÄÌÑ ÏÂÙÞÎÙÈ ÛÁÂÌÏÎÏ×, REGEX ÄÌÑ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ" -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" -msgstr "" +msgstr "ôÉÐ ÛÁÂÌÏÎÁ" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" "# 1 = regex\n" -msgstr "" +msgstr "# óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# * 0 = wildmat\n" + "# 1 = regex\n" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "éÓÐÏÌØÚÏ×ÁÔØ slrnface ÄÌÑ ÐÏËÁÚÁ X_Face:" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" -msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ slrnface(1) ÄÌÑ ÉÎÔÅÒÐÒÉÔÉÒÏ×ÁÎÉÑ\n" +msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ slrnface(1) ÄÌÑ ÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÎÉÑ\n" "# ÚÁÇÏÌÏ×ËÁ X-Face. ðÏÌØÚÎÏ ÔÏÌØËÏ ÐÏÄ xterm.\n" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "éÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI\n" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÆÏÎ)" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# ã×ÅÔ ÆÏÎÁ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 7 (ÂÅÌÙÊ)\n" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "ã×ÅÔ ÔÅËÓÔÁ ÍÅÎÀ ÍÉÎÉ-ÐÏÍÏÝÉ" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# ã×ÅÔ ÔÅËÓÔÁ ÍÉÎÉ-ÐÏÍÏÝÉ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "# ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "ã×ÅÔ ÓÔÁÔÕÓÎÙÈ ÓÏÏÂÝÅÎÉÊ" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" -msgstr "# ã×ÅÔ ÓÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n" +msgstr "# ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔØÉ" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÁ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 9 (Ó×ÅÔÌÏ-ËÒÁÓÎÙÊ)\n" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "ã×ÅÔ ÓÔÒÏË Ó ÔÅÍÏÊ ÓÔÁÔØÉ" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# ã×ÅÔ ÓÔÒÏËÉ Ó ÔÅÍÏÊ ÓÔÁÔØÉ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (ÇÏÌÕÂÏÊ)\n" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" -msgstr "# ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n" +msgstr "# ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×\n" + "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ From:" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ (From:)\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "ã×ÅÔ ÓÏÏÂÝÅÎÉÑ Ï ×ÙÚÏ×Å ÐÏÍÏÝÉ" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# ã×ÅÔ Help/Mail-Sign\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "ã×ÅÔ ÓÉÇÎÁÔÕÒ" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# ã×ÅÔ ÓÉÇÎÁÔÕÒ\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "# ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 11 (Ö£ÌÔÙÊ)\n" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 13 (Ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ)\n" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 14 (Ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ)\n" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 12 (Ó×ÅÔÌÏ-ÓÉÎÉÊ)\n" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5456,7 +5510,7 @@ msgid "# Attributes of word highlighting "\n" "# Attribute of word highlighting with *stars*\n" "# Default: 6 (bold)\n" -msgstr "# áÔÒÉÂÕÔÙ ÐÏÄÓ×ÅÞÉËÁÎÉÑ ÓÌÏ× ÎÁ ÍÏÎÏÈÒÏÍÎÙÈ ÔÅÒÍÉÎÁÌÁÈ\n" +msgstr "# áÔÒÉÂÕÔÙ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ ÓÌÏ× ÎÁ ÍÏÎÏÈÒÏÍÎÙÈ ÔÅÒÍÉÎÁÌÁÈ\n" "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ:\n" "# 0 = îÏÒÍÁÌØÎÙÊ\n" "# 1 = ðÏÄÞ£ÒËÉ×ÁÎÉÅ\n" @@ -5469,57 +5523,57 @@ msgstr "# áÔÒÉÂÕÔÙ ÐÏÄÓ×ÅÞÉËÁÎÉÑ ÓÌÏ× ÎÁ "# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (bold)\n" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÌÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ)\n" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 5 (half bright)\n" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-\n" "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ÒÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ)\n" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "ðÏÄÓ×ÅÞÉ×ÁÔØ URL × ÔÅÌÅ ÐÉÓØÍÁ" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ URL?\n" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "ðÏÄÓ×ÅÞÉ×ÁÔØ ÓÌÏ×Á × ÔÅÌÅ ÓÏÏÂÝÅÎÉÑ" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ ÓÌÏ×?\n" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "÷Ù×ÏÄÉÔØ ×ÍÅÓÔÏ ÏÔÍÅÔËÉ" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5528,55 +5582,55 @@ msgid "# Should the leading and ending s "# * 2 = print a space instead\n" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "÷×ÅÄÉÔÅ ÍÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "íÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "÷×ÅÄÉÔÅ email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ). ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "Email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ)" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "# Email ÁÄÒÅÓ ÐÏÌØÚÏ×ÁÔÅÌÑ (É ÐÏÌÎÏÅ ÉÍÑ).\n" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "ðÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Followup-To × ÒÅÄÁËÔÏÒÅ" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Follow-up ×Ï ×ÒÅÍÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÓÔÁÔØÉ\n" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "÷×ÅÄÉÔÅ ÐÕÔØ/! ËÏÍÁÎÄÁ/--none ÄÌÑ ÓÏÚÄÁÎÉÑ ×ÁÛÅÊ ÓÉÇÎÁÔÕÒÙ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" -msgstr "óÏÚÄÁÔØ ÓÉÇÎÕÔÁÒÕ ËÏÍÁÎÄÏÊ" +msgstr "óÏÚÄÁÔØ ÓÉÇÎÁÔÕÒÕ ËÏÍÁÎÄÏÊ" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5584,51 +5638,51 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\" × ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\"" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "# åÓÌÉ ON, ÔÏ ÎÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó ÄÅÆÉÓÏ× '\\n-- \\n'\n" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ\n" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌÙ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ, %s ÉÌÉ %S ÉÎÉÃÉÁÌÙ Á×ÔÏÒÁ." -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "óÉÍ×ÏÌÙ ÉÓÐÏÌØÚÕÅÍÙÅ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "ãÉÔÉÒÏ×ÁÎÉÅ" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5639,53 +5693,62 @@ msgid "# How quoting should be handled w "# * 5 = Compress quotes, quote empty lines\n" "# 6 = Quote signatures, quote empty lines\n" "# 7 = Compress quotes, quote signatures, quote empty lines\n" -msgstr "" +msgstr "# íÅÔÏÄ ÃÉÔÉÒÏ×ÁÎÉÑ ÓÔÁÔÅÊ ÐÒÉ ÏÔ×ÅÔÅ.\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# 0 = îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ\n" + "# 1 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ\n" + "# 2 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n" + "# 3 = óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n" + "# 4 = ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n" + "# * 5 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n" + "# 6 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n" + "# 7 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ follow-up" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" "# %%N Full Name %%C First Name %%I Initials\n" msgstr "" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ËÒÏÓÓ-ÐÏÓÔÉÎÇÅ" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ÏÔÐÒÁ×ËÅ email" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "äÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" -msgstr "# åÓÌÉ ON, ÔÏ ÄÏ×ÁÂÌÑÔØ ÒÅËÌÁÍÎÙÊ ÚÁÇÏÌÏ×ÏË User-Agent:\n" +msgstr "# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÒÅËÌÁÍÎÙÊ ÚÁÇÏÌÏ×ÏË User-Agent:\n" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "÷×ÅÄÉÔÅ ËÏÄÉÒÏ×ËÕ ÄÌÑ MIME (ÎÁÐÒ. US-ASCII, ISO-8859-1, EUC-KR), " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5694,27 +5757,27 @@ msgid "# Charset supported locally which "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# ëÏÄÉÒÏ×ËÁ × MIME (Content-Type) × ÏÔÐÒÁ×ÌÑÅÍÙÈ ÓÔÁÔØÑÈ.\n" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "æÏÒÍÁÔ Mailbox" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "# æÏÒÍÁÔ mailbox.\n" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "ëÏÄÉÒÏ×ËÁ MIME × ÓÔÁÔØÑÈ" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5722,44 +5785,48 @@ msgid "# MIME encoding (8bit, base64, qu "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "îÅ ÉÚÍÅÎÑÊÔÅ, ÅÓÌÉ ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ. ÏÔÍÅÎÁ." -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" -msgstr "éÓÐÏÌØÚÏ×ÁÔØ 8bit ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ" +msgstr "éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" "# parameter unless post_mime_encoding is 8bit as well.\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ ÎÅ ËÏÄÉÒÕÀÔÓÑ.\n" + "# ðÏ ÕÍÏÌÞÎÁÎÉÀ OFF. ôÁËÉÍ ÏÂÒÁÚÏÍ ÐÏ ÕÍÏÌÞÁÎÉÀ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ\n" + "# ËÏÄÉÒÕÀÔÓÑ. 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ËÏÄÉÒÕÀÔÓÑ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ\n" + "# ÏÔ ÚÎÁÞÅÎÉÑ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ, ÐÏËÁ post_mime_encoding ÔÁËÖÅ\n" + "# ÎÅ ÕÓÔÁÎÏ×ÌÅÎ × 8bit.\n" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "á×ÔÏÐÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ, " "ÏÔÍÅÎÉÔØ" -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "ðÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "# åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎ, ÔÏ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÅ ÆÁÊÌÙ ÂÕÄÕÔ ÏÔËÒÙ×ÁÔØÓÑ\n" "# × ÐÒÏÓÍÏÔÏÒÝÉËÅ\n" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "MIME ËÏÄÉÒÏ×ËÁ × ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÑÈ" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" -msgstr "éÓÐÏÌØÚÏ×ÁÔØ 8bit ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÐÏÞÔÙ" +msgstr "éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÐÏÞÔÙ" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -5769,163 +5836,166 @@ msgid "# If ON, 8bit characters in mail "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "õÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ ÄÌÑ ÂÏÌÅÅ ÂÙÓÔÒÏÇÏ ×Ù×ÏÄÁ\n" - "# ÎÁ ÍÅÄÌÅÎÎÙÈ ÔÅÒÍÉÎÁÏÁÈ.\n" + "# ÎÁ ÍÅÄÌÅÎÎÙÈ ÔÅÒÍÉÎÁÌÁÈ.\n" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÒÁÎÓÌÉÔÅÒÁÃÉÀ, <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ" -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "ôÒÁÎÓÌÉÔÅÒÁÃÉÑ" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÁÓÛÉÒÅÎÉÅ //TRANSLIT. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ËÏÇÄÁ\n" + "# ÓÉÍ×ÏÌ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÅÄÓÔÁ×ÌÅÎ × ÃÅÌÅ×ÏÍ ÎÁÂÏÒÅ ÓÉÍ×ÏÌÏ×, ÔÏ ÏÎ\n" + "# ÁÐÐÒÏËÓÉÍÉÒÕÅÔÓÑ ÏÄÎÉÍ ÉÌÉ ÎÅÓËÏÌØËÉÍÉ ÐÏÈÏÖÉÍÉ ÓÉÍ×ÏÌÁÍÉ.\n" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ carbon copy Á×ÔÏÍÁÔÉÞÅÓËÉ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" -msgstr "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ CC Á×ÔÏÍÁÔÉÞÅÓËÉ" +msgstr "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Cc Á×ÔÏÍÁÔÉÞÅÓËÉ" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × ÐÏÌÅ Cc:\n" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" -msgstr "" +msgstr "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Blind cc Á×ÔÏÍÁÔÉÞÅÓËÉ" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × ÐÏÌÅ " + "Bcc:\n" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ. ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "þÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ, <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ" -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox." -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÐÏÞÔÙ" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" -msgstr "" +msgstr "# (-m) ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox\n" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "óÏÈÒÁÎÑÔØ ÓÔÁÔØÉ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ (-S)" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ" -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "# äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÑÔØ ÓÔÁÔØÉ/ÄÉÓË. Ó ÚÁÇÏÌÏ×ËÏÍ Archive-name:. <ðòïâåì> " "×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÚÁÇÏÌÏ×ÏË Archive-name: ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." -msgstr "ïÔÍÅÔÉÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, " +msgstr "ïÔÍÅÔÉÔØ ÓÏÈÒÁΣÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ" -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" -msgstr "ïÔÍÅÔÉÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ" +msgstr "ïÔÍÅÔÉÔØ ÓÏÈÒÁΣÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" -msgstr "# åÓÌÉ ON, ÔÏ ÏÔÍÅÔÉÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ\n" +msgstr "# åÓÌÉ ON, ÔÏ ÏÔÍÅÔÉÔØ ÓÏÈÒÁΣÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ\n" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." -msgstr "÷Ù×ÏÌÎÉÔØ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ (ÎÁÐÒ. ÕÂÒÁÔØ ×ÌÏÖÅÎÉÑ) ÄÌÑ ÓÏÈÒÁÎÑÅÍÙÈ ÓÔÁÔÅÊ" +msgstr "÷ÙÐÏÌÎÉÔØ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ (ÎÁÐÒ. ÕÂÒÁÔØ ×ÌÏÖÅÎÉÑ) ÄÌÑ ÓÏÈÒÁÎÑÅÍÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" -msgstr "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ ÓÏÈÒÁÎÅÎÎÙÈ ÓÔÁÔÅÊ" +msgstr "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ ÓÏÈÒÁΣÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -5933,101 +6003,101 @@ msgid "# Perform post processing (saving "# 2 = yes\n" msgstr "" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "ðÅÞÁÔÁÔØ ×ÓÅ ÉÌÉ ÔÏÌØËÏ ÞÁÓÔØ ÚÁÇÏÌÏ×ËÏ×. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "ðÅÞÁÔÁÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" -msgstr "# åÓÌÉ ON, ÔÏ ÐÅÞÁÔÅÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ ÓÔÁÔÅÊ, ÉÎÁÞÅ ÔÏÌØËÏ ×ÁÖÎÙÅ\n" +msgstr "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ ÓÔÁÔÅÊ, ÉÎÁÞÅ ÔÏÌØËÏ ×ÁÖÎÙÅ\n" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ" -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "ðÒÏÇÒÁÍÍÁ ÐÅÞÁÔÉ Ó ÏÐÃÉÑÍÉ" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "# ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" -msgstr "ðÅÒÅ×Ù×ÏÄÉÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ" +msgstr "ðÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "# åÓÌÉ ON, ÔÏ ÐÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ\n" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ. <ðòïâåì> ×ÙÂÏÒ, ÕÓÔÁÎÏ×ÉÔØ, " " ÏÔÍÅÎÁ." -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "# åÓÌÉ ON, ÔÏ ÒÅÄÁËÔÏÒ ÂÕÄÅÔ ÚÁÐÕÝÅÎ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ ÓÏ ÓÍÅÝÅÎÉÅÍ,\n" "# ÉÎÁÞÅ ËÕÒÓÏÒ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÐÅÒ×ÏÊ ÓÔÒÏËÅ\n" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "÷×ÅÄÉÔÅ %E ÄÌÑ ÉÍÅÎÉ ÒÅÄÁËÔÏÒÁ, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, %N ÄÌÑ ÎÏÍÅÒÁ ÓÔÒÏËÉ. " " ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "úÁÐÕÓË ×ÁÛÅÇÏ ÒÅÄÁËÔÏÒÁ" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "# æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ÚÁÐÕÓËÁ ÒÅÄÁËÔÏÒÁ ×ËÌÀÞÁÅÔ ÐÁÒÁÍÅÔÒÙ\n" "# %%E òÅÄÁËÔÏÒ %%F éÍÑ ÆÁÊÌÁ %%N îÏÍÅÒ ÓÔÒÏËÉ\n" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ external-inews, --internal ÄÌÑ internal inews" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "÷ÎÅÛÎÉÊ inews" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "# åÓÌÉ --internal, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÓÔÒÏÅÎÎÙÊ ÍÉÎÉ unews ÄÌÑ ÏÔÐÒÁ×ËÉ\n" "# ÓÔÁÔÅÊ ÞÅÒÅÚ NNTP, ÉÎÁÞÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÎÅÛÎÀÀ ÐÒÏÇÒÁÍÍÕ inews\n" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "÷×ÅÄÉÔÅ %M ÄÌÑ MTA, %S ÄÌÑ ÔÅÍÙ, %T ÄÌÑ To, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "úÁÐÕÓË ×ÁÛÅÊ ËÏÍÁÎÄÙ ÏÔÐÒÁ×ËÉ ÐÏÞÔÙ" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6035,129 +6105,140 @@ msgid "# Format of mailer line including "# ie. elm interactive : elm -i %%F -s \"%%S\" \"%%T\"\n" msgstr "" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "éÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" "# 1 = use interactive mailreader with headers in file\n" "# 2 = use interactive mailreader without headers in file\n" -msgstr "" +msgstr "# éÎÔÅÒÁËÔÉ×ÎÁÑ ÐÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÐÏÞÔÙ\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# * 0 = ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ\n" + "# 1 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ Ó ÚÁÇÏÌÏ×ËÁÍÉ × " + "ÆÁÊÌÅ\n" + "# 2 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ ÂÅÚ ÚÁÇÏÌÏ×ËÏ× × " + "ÆÁÊÌÅ\n" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "õÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "# åÓÌÉ ON, ÔÏ ÕÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ.\n" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "éÍÑ ÆÁÊÌÁ ÄÌÑ ×ÓÅÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ. ÕÓÔÁÎÏ×ÉÔØ, ÎÅ ÉÍÅÎÉ=ÎÅ " "ÓÏÈÒÁÎÑÔØ." -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "éÍÑ ÆÁÊÌÁ ÄÌÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" -msgstr "" +msgstr "# éÍÑ ÆÁÊÌÁ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ.\n" + "# åÓÌÉ ÉÍÑ ÆÁÊÌÁ ÎÅ ÕËÁÚÁÎÏ, ÔÏ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ ÎÅ ÂÕÄÕÔ ÓÏÈÒÁÎÑÔÓÑ.\n" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "äÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles. <ðòïâåì> ×ÙÂÏÒ, " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "äÅÒÖÁÔØ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" -msgstr "# åÓÌÉ ON, ÔÏ ÄÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles\n" +msgstr "# åÓÌÉ ON, ÔÏ ÄÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ × ~/dead.articles\n" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" -msgstr "èÏÔÉÔÅ ÕÂÒÁÔÏ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ .newsrc" +msgstr "èÏÔÉÔÅ ÕÂÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ .newsrc" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "õÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" -msgstr "" +msgstr "# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc\n" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "õÂÉÒÁÔØ ÆÉËÔÉ×ÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" "# 1 = remove\n" "# 2 = highlight with D on selection screen\n" -msgstr "" +msgstr "# äÅÊÓÔ×ÉÑ Ó ÆÉËÔÉ×ÎÙÍÉ ÇÒÕÐÐÁÍÉ ÉÚ ÆÁÊÌÁ newsrc\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" + "# * 0 = ÏÓÔÁ×ÌÑÔØ\n" + "# 1 = ÕÎÉÞÔÏÖÁÔØ\n" + "# 2 = ÐÏÍÅÞÁÔØ D × ÜËÒÁÎÅ ×ÙÂÏÒÁ\n" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "÷×ÅÄÉÔÅ ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ. " "ÕÓÔÁÎÏ×ÉÔØ." -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "éÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ ÞÔÅÎÉÅÍ active" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "# ÷ÒÅÍÅÎÎÏÊ ÉÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÆÁÊÌÁ\n" "# active (0=ÎÉËÏÇÄÁ)\n" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "óÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á Ó ÓÅÒ×ÅÒÏÍ Á×ÔÏÍÁÔÉÞÅÓËÉ" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "# åÓÌÉ ON, ÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÐÏÄËÌÀÞÁÔØÓÑ Ë ÓÅÒ×ÅÒÕ NNTP, ÅÓÌÉ ÓÏÅÄÉÎÅÎÉÅ\n" "# ÐÒÅÒ×ÁÌÏÓØ\n" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. ÕÓÔÁÎÏ×ÉÔØ, ÏÔÍÅÎÁ." -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ×Ù×ÏÄÁ ÄÁÔ" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "# æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÄÁÔÙ\n" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -6166,18 +6247,18 @@ msgid "# Unicode normalization form\n" "# 3 = NFC\n" "# 4 = NFD\n" msgstr "# æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode\n" - "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÁ *):\n" + "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n" "# 0 = îÉÞÅÇÏ\n" "# * 1 = NFKC\n" "# 2 = NFKD\n" "# 3 = NFC\n" "# 4 = NFD\n" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "÷ÏÓÐÒÏÉÚ×ÏÄÉÔØ BiDi" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "# åÓÌÉ ON, ÔÏ Ä×ÕÎÁÐÒÁ×ÌÅÎÎÙÊ ÔÅËÓÔ ×ÏÓÐÒÏÉÚ×ÏÄÉÔÓÑ tin'ÏÍ\n" @@ -6202,11 +6283,11 @@ msgid "\n" msgstr "\n" "óÅÒ×ÅÒ ÎÅ ÏÔ×ÅÞÁÅÔ, ÐÏÐÙÔËÁ ÓÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á # %d\n" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "÷ÓÔÕÐÉÔØ ÓÎÏ×Á × ÔÅËÕÝÕÀ ÇÒÕÐÐÕ\n" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "þÔÅÎÉÅ (%s)\n" @@ -6223,7 +6304,7 @@ msgstr "ðÅÒÅÓÌÁÔØ ÐÏÓÌÅÄÎÀÀ ËÏÍÁÎÄÕ (%s) #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -6232,14 +6313,14 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "ÎÅ ÐÏÌÕÞÉÌÏÓØ ÒÁÓËÒÙÔØ %s\n" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "óÔÒÏËÁ %d ÄÌÉÎÎÅÅ 998 ÏËÔÅÔÏ× É ÄÏÌÖÎÁ ÂÙÔØ ÒÁÚÂÉÔÁ ÎÁ ÞÁÓÔÉ,\n" "ÎÏ ËÏÄÉÒÏ×ËÁ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ ÎÉ × %s, ÎÉ × %s\n" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" @@ -6249,14 +6330,14 @@ msgstr "óÔÒÏËÁ %d ÄÌÉÎÎÅÅ 998 ÏËÔÅÔÏ× É "ÉÌÉ ÓÏÏÂÝÅÎÉÅ ÎÅ ÓÏÄÅÒÖÉÔ ÎÉ ÏÄÎÏÇÏ 8-ÂÉÔÎÏÇÏ ÓÉÍ×ÏÌÁ, ÔÁËÉÍ ÏÂÒÁÚÏÍ\n" "ÒÁÚÂÉÔÉÑ ÎÁ ÞÁÓÔÉ ÎÅ ÐÒÏÉÚÏÊÄ£Ô.\n" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "óÔÒÏËÁ %d ÄÌÉÎÎÅÅ 998 ÏËÔÅÔÏ× É ÄÏÌÖÎÁ ÂÙÔØ ÒÁÚÂÉÔÁ ÎÁ ÞÁÓÔÉ,\n" "ÎÏ ËÏÄÉÒÏ×ËÁ ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ × %s\n" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "ïÔÐÒÁ×ÌÅÎÉÅ × ÇÒÕÐÐÕ %.*s ..." @@ -6298,7 +6379,7 @@ msgstr "üÔÏ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ ÓÏÚÄÁÎÏ × 'mu "ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÆÏÒÍÁÔÏÍ É ÓÌÅÄÕÀÝÉÅ ÄÁÎÎÙÅ ÍÏÇÕÔ ×ÙÇÌÑÄÅÔØ ÓÔÒÁÎÎÏ.\n" "\n" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "ÂÁÊÔ" @@ -6349,7 +6430,7 @@ msgstr "üÔÁ ÄÉÒÅËÔÏÒÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ #: src/xface.c:123 msgid "Can't run slrnface: couldn't construct fifo name." -msgstr "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÎÅ ÕÄÁ£ÔÓÑ ÓËÏÎÓÔÕÒÉÒÏ×ÁÔØ ÉÍÑ fifo." +msgstr "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÎÅ ÕÄÁ£ÔÓÑ ÓËÏÎÓÔÒÕÉÒÏ×ÁÔØ ÉÍÑ fifo." #: src/xface.c:162 #, c-format Binary files tin-1.9.1/po/rw.gmo and tin-1.9.2/po/rw.gmo differ diff -Nurp tin-1.9.1/po/rw.po tin-1.9.2/po/rw.po --- tin-1.9.1/po/rw.po 2006-04-09 17:55:11.000000000 +0200 +++ tin-1.9.2/po/rw.po 2007-02-01 14:02:44.977585633 +0100 @@ -15,7 +15,7 @@ msgid "" msgstr "Project-Id-Version: tin 1.7.8\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2005-04-03 10:55-0700\n" "Last-Translator: Steven Michael Murphy \n" "Language-Team: Kinyarwanda \n" @@ -23,7 +23,7 @@ msgstr "Project-Id-Version: tin 1.7.8\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, fuzzy, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "%d Incamake Icyabitswe Imyanya" @@ -165,137 +165,137 @@ msgstr "" msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, fuzzy, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0 1. Kwirengagiza\n" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, fuzzy, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2. Bivuye 3. Bivuye Kwirengagiza\n" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:746 +#: src/attrib.c:749 #, fuzzy, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# Mburabuzi ni\n" -#: src/attrib.c:748 +#: src/attrib.c:751 #, fuzzy, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "#\n" "# ni Kuri Gushyira Rusange\n" -#: src/attrib.c:749 +#: src/attrib.c:752 #, fuzzy, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# Ibyinjijwe Itangira ku Itsinda Ibyinjijwe\n" "#\n" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:756 +#: src/attrib.c:759 #, fuzzy, c-format msgid "# include extra headers\n" msgstr "# Gushyiramo Birenga\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, fuzzy, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "# in Gushyiraho Iposita Ubwoko Kuri\n" -#: src/attrib.c:768 +#: src/attrib.c:771 #, fuzzy, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "# in Iposita Inonosora Gukuraho...\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, fuzzy, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "# Na Gushyiraho\n" -#: src/cook.c:507 +#: src/cook.c:559 #, fuzzy msgid "(unknown)" msgstr "(Itazwi)" @@ -687,7 +687,7 @@ msgstr "Gikora IDOSIYE kugirango Amatsin msgid "Creating newsrc file...\n" msgstr "IDOSIYE" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Mburabuzi" @@ -1860,7 +1860,7 @@ msgstr "Kwimura Itsinda muri Urutonde" msgid "choose next group with unread news" msgstr "Guhitamo Komeza>> Itsinda Na: Bidasomye Amakuru" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 #, fuzzy msgid "quit" msgstr "Kuvamo" @@ -2224,50 +2224,45 @@ msgstr "" msgid "Lines %s " msgstr "Imirongo." -#: src/lang.c:478 -#, fuzzy -msgid "Message-ID: line " -msgstr "Umurongo" - # sfx2/source\appl\app.src:STR_MAIL.text -#: src/lang.c:479 +#: src/lang.c:478 msgid "Mail" msgstr "Ubutumwa" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "" -#: src/lang.c:481 +#: src/lang.c:480 #, fuzzy, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Ingingo S Kuri S" -#: src/lang.c:482 +#: src/lang.c:481 #, fuzzy, c-format msgid "Mailing log to %s\n" msgstr "LOG Kuri %s\n" -#: src/lang.c:483 +#: src/lang.c:482 #, fuzzy msgid "Mail bug report..." msgstr "Icyegeranyo" -#: src/lang.c:484 +#: src/lang.c:483 #, fuzzy, c-format msgid "Mail BUG REPORT to %s?" msgstr "Kuri" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "" -#: src/lang.c:486 +#: src/lang.c:485 #, fuzzy, c-format msgid "Mailing to %s..." msgstr "Kuri %s" -#: src/lang.c:487 +#: src/lang.c:486 #, fuzzy msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" @@ -2276,311 +2271,324 @@ msgid "# [Mail/Save] active file. Format msgstr "#[Kubika Gikora IDOSIYE ni nka Amakuru Gikora IDOSIYE KININI GITO Umwanya ni " "i Cyangwa" -#: src/lang.c:490 +#: src/lang.c:489 #, fuzzy, c-format msgid "%s marked as unread" msgstr "%scy/ byagarajwe Nka Bidasomye" -#: src/lang.c:491 +#: src/lang.c:490 #, fuzzy, c-format msgid "Marked %d of %d tagged %s as read" msgstr "Bya Nka Gusoma" -#: src/lang.c:492 +#: src/lang.c:491 #, fuzzy, c-format msgid "Mark all articles as read%s?" msgstr "Byose Nka Gusoma" -#: src/lang.c:493 +#: src/lang.c:492 #, fuzzy, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "KIGEZWEHO Ingingo Kuvamo" -#: src/lang.c:494 +#: src/lang.c:493 #, fuzzy, c-format msgid "Mark group %s as read?" msgstr "Itsinda Nka Gusoma" -#: src/lang.c:495 +#: src/lang.c:494 #, fuzzy, c-format msgid "Mark thread as read%s?" msgstr "Urudodo Nka Gusoma" -#: src/lang.c:496 +#: src/lang.c:495 #, fuzzy, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "KIGEZWEHO Urudodo Kuvamo" -#: src/lang.c:497 +#: src/lang.c:496 #, fuzzy, c-format msgid "Matching %s groups..." msgstr "Amatsinda" -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "> Bidasomye Gushaka Ishusho Guhitamo" -#: src/lang.c:499 +#: src/lang.c:498 #, fuzzy, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=Umwanditsi Gushaka Umurongo Hasi Umurongo Hejuru Ikimenyetso Gusoma " "Urutonde Urudodo" -#: src/lang.c:500 +#: src/lang.c:499 #, fuzzy, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=Umurongo Hejuru Umurongo Hasi Ipaji Hejuru Ipaji Hasi Hejuru: Hasi:" -#: src/lang.c:501 +#: src/lang.c:500 #, fuzzy, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=Gushaka Gushaka Inyuma Kuvamo" -#: src/lang.c:503 +#: src/lang.c:502 #, fuzzy, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=Umwanditsi Gushaka Umubiri Gushaka Ikimenyetso Gusoma" -#: src/lang.c:504 +#: src/lang.c:503 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "> Bidasomye Gushaka Ishusho" -#: src/lang.c:505 +#: src/lang.c:504 #, fuzzy, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=Umurongo Hasi Umurongo Hejuru Ifashayobora Kwimura Kuvamo Mukomatanya " "Byose Bidasomye" -#: src/lang.c:506 +#: src/lang.c:505 #, fuzzy, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=Kwiyandikisha Ishusho Kwivana aho wiyandikishe Ishusho in Inyuma" -#: src/lang.c:507 +#: src/lang.c:506 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "> Bidasomye Kugaragaza Mukomatanya" -#: src/lang.c:508 +#: src/lang.c:507 #, fuzzy, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=Ifashayobora Umurongo Hasi Umurongo Hejuru Kuvamo Itagi: Ikimenyetso " "Bidasomye" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "" +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +#, fuzzy +msgid "Message-ID: line " +msgstr "Umurongo" + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 #, fuzzy msgid ", name: " msgstr ",IZINA! " -#: src/lang.c:513 +#: src/lang.c:515 #, fuzzy, c-format msgid "Goto newsgroup [%s]> " msgstr "Urubuga rw'amakuru" # svtools/source\misc\mediatyp.src:STR_SVT_MIMETYPE_CNT_BBBOX.text -#: src/lang.c:514 +#: src/lang.c:516 #, fuzzy msgid "newsgroups" msgstr "Imbuga z'amakuru" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "" -#: src/lang.c:516 +#: src/lang.c:518 #, fuzzy msgid "newsgroup" msgstr "Urubuga rw'amakuru" -#: src/lang.c:517 +#: src/lang.c:519 #, fuzzy msgid "Try and save newsrc file again?" msgstr "Na Kubika IDOSIYE" -#: src/lang.c:518 +#: src/lang.c:520 #, fuzzy msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "Imbuga z'amakuru Kuri IDOSIYE Kubika" -#: src/lang.c:519 +#: src/lang.c:521 #, fuzzy msgid "newsrc file saved successfully.\n" msgstr "IDOSIYE" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "" -#: src/lang.c:521 +#: src/lang.c:523 #, fuzzy, c-format msgid "NNTP authorization password not found for %s" msgstr "Ijambobanga... OYA Byabonetse kugirango" -#: src/lang.c:522 +#: src/lang.c:524 #, fuzzy msgid "No " msgstr "Oya" -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "" -#: src/lang.c:525 +#: src/lang.c:527 #, fuzzy msgid "*** No description ***" msgstr "*** Isobanuramiterere ***" -#: src/lang.c:526 +#: src/lang.c:528 #, fuzzy msgid "No filename" msgstr "Izina ry'idosiye:" -#: src/lang.c:527 +#: src/lang.c:529 #, fuzzy msgid "No group" msgstr "Itsinda" -#: src/lang.c:528 +#: src/lang.c:530 #, fuzzy msgid "*** No groups ***" msgstr "*** Amatsinda ***" -#: src/lang.c:529 +#: src/lang.c:531 #, fuzzy msgid "No more groups to read" msgstr "Birenzeho Amatsinda Kuri Gusoma" -#: src/lang.c:530 +#: src/lang.c:532 #, fuzzy msgid "No last message" msgstr "Iheruka Ubutumwa" -#: src/lang.c:531 +#: src/lang.c:533 #, fuzzy msgid "No mail address" msgstr "Ubutumwa Aderesi" -#: src/lang.c:532 +#: src/lang.c:534 #, fuzzy msgid "No articles marked for saving" msgstr "cy/ byagarajwe kugirango Mu kubika" -#: src/lang.c:533 +#: src/lang.c:535 #, fuzzy msgid "No match" msgstr "BIHUYE" -#: src/lang.c:534 +#: src/lang.c:536 #, fuzzy msgid "No more groups" msgstr "Birenzeho Amatsinda" -#: src/lang.c:535 +#: src/lang.c:537 #, fuzzy msgid "No newsgroups" msgstr "Imbuga z'amakuru" -#: src/lang.c:536 +#: src/lang.c:538 #, fuzzy msgid "No next unread article" msgstr "Komeza>> Bidasomye Ingingo" -#: src/lang.c:537 +#: src/lang.c:539 #, fuzzy msgid "No previous group" msgstr "Ibanjirije Itsinda" -#: src/lang.c:538 +#: src/lang.c:540 #, fuzzy msgid "No previous unread article" msgstr "Ibanjirije Bidasomye Ingingo" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "" -#: src/lang.c:540 +#: src/lang.c:542 #, fuzzy msgid "No responses to list in current thread" msgstr "Kuri Urutonde in KIGEZWEHO Urudodo" -#: src/lang.c:541 +#: src/lang.c:543 #, fuzzy msgid "No search string" msgstr "Gushaka Ikurikiranyanyuguti" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "Nta kivugwaho" -#: src/lang.c:544 +#: src/lang.c:546 #, fuzzy, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s:Gusiba Kuri Impera Bya Umurongo" -#: src/lang.c:545 +#: src/lang.c:547 #, fuzzy, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s:Gusiba Kuri Impera Bya Mugaragaza" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:547 +#: src/lang.c:549 #, fuzzy, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s:indanga cm" -#: src/lang.c:548 +#: src/lang.c:550 #, fuzzy, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s:IMPINDURAGACIRO Gushyiraho Kuri Gukoresha Mugaragaza" -#: src/lang.c:550 +#: src/lang.c:552 #, fuzzy, c-format msgid "No viewer found for %s/%s\n" msgstr "Byabonetse kugirango" -#: src/lang.c:551 +#: src/lang.c:553 #, fuzzy msgid "Newsgroup does not exist on this server" msgstr "OYA ku iyi Seriveri" -#: src/lang.c:552 +#: src/lang.c:554 #, fuzzy, c-format msgid "Group %s not found in active file" msgstr "OYA Byabonetse in Gikora IDOSIYE" -#: src/lang.c:553 +#: src/lang.c:555 #, fuzzy msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "C Gukoresha a Izina: Gukoresha D Q" -#: src/lang.c:554 +#: src/lang.c:556 #, fuzzy msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "Gukoresha a Izina: Gukoresha D Q" -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2596,348 +2604,353 @@ msgid "# NNTP-server -> newsrc translati "#\n" msgstr "" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "" -#: src/lang.c:563 +#: src/lang.c:565 #, fuzzy, c-format msgid "Option not enabled. Recompile with %s." msgstr "OYA Bikora Na:" -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "" -#: src/lang.c:567 +#: src/lang.c:569 #, fuzzy, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "in ku" -#: src/lang.c:568 +#: src/lang.c:570 #, fuzzy, c-format msgid "Error in regex: pcre internal error %d" msgstr "in By'imbere Ikosa" -#: src/lang.c:569 +#: src/lang.c:571 #, fuzzy, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "in By'imbere Ikosa" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "" #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 #, fuzzy msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" msgstr "Ikosa i Ingingo ni By'igihe gito Cyangwa i Hejuru Na:" -#: src/lang.c:575 +#: src/lang.c:577 #, fuzzy msgid "Posted articles history" msgstr "Urutonde" -#: src/lang.c:576 +#: src/lang.c:578 #, fuzzy, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Kuri Urubuga rw'amakuru S" -#: src/lang.c:577 +#: src/lang.c:579 #, fuzzy msgid "-- post processing started --" msgstr "--Iposita Inonosora--" -#: src/lang.c:578 +#: src/lang.c:580 #, fuzzy msgid "-- post processing completed --" msgstr "--Iposita Inonosora--" -#: src/lang.c:579 +#: src/lang.c:581 #, fuzzy, c-format msgid "Post subject [%s]> " msgstr "Ikivugwaho" -#: src/lang.c:580 +#: src/lang.c:582 #, fuzzy msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# Bya Ubutumwa ku Komandi: Bivuye muri" -#: src/lang.c:581 +#: src/lang.c:583 #, fuzzy msgid "Posting article..." msgstr "Ingingo" -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:586 +#: src/lang.c:588 #, fuzzy msgid "Processing mail messages marked for deletion." msgstr "Ubutumwa Ubutumwa cy/ byagarajwe kugirango Isibwa" -#: src/lang.c:587 +#: src/lang.c:589 #, fuzzy msgid "Processing saved articles marked for deletion." msgstr "cy/ byagarajwe kugirango Isibwa" -#: src/lang.c:588 +#: src/lang.c:590 #, fuzzy, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "Iposita Kwirengagiza Kuvamo" -#: src/lang.c:589 +#: src/lang.c:591 #, fuzzy msgid "Article unchanged, abort mailing?" msgstr "Kureka" -#: src/lang.c:590 +#: src/lang.c:592 #, fuzzy, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Kuri" -#: src/lang.c:592 +#: src/lang.c:594 #, fuzzy msgid "Add quick kill filter?" msgstr "Muyunguruzi..." -#: src/lang.c:593 +#: src/lang.c:595 #, fuzzy msgid "Add quick selection filter?" msgstr "Ihitamo Muyunguruzi..." -#: src/lang.c:594 +#: src/lang.c:596 #, fuzzy msgid "Do you really want to quit?" msgstr "Kuri Kuvamo" -#: src/lang.c:595 +#: src/lang.c:597 #, fuzzy, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=Guhindura Kureka Ubutumwa Kuvamo Gusiba Kureka" -#: src/lang.c:596 +#: src/lang.c:598 #, fuzzy msgid "You have tagged articles in this group - quit anyway?" msgstr "in iyi Itsinda Kuvamo" -#: src/lang.c:597 +#: src/lang.c:599 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=Kuvamo Guhindura" -#: src/lang.c:598 +#: src/lang.c:600 #, fuzzy, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=Kuvamo Guhindura Kubika Isobanuramiterere" -#: src/lang.c:599 +#: src/lang.c:601 #, fuzzy, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=Kuvamo Guhindura Kubika Guhitamo Isobanuramiterere" -#: src/lang.c:600 +#: src/lang.c:602 #, fuzzy msgid "Do you really want to quit without saving your configuration?" msgstr "Kuri Kuvamo Mu kubika Iboneza" -#: src/lang.c:603 +#: src/lang.c:605 #, fuzzy msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Urutonde Byemewe 0 9 1." -#: src/lang.c:604 +#: src/lang.c:606 #, fuzzy msgid "Do you want to abort this operation?" msgstr "Kuri Kureka iyi" -#: src/lang.c:605 +#: src/lang.c:607 #, fuzzy msgid "Do you want to exit tin immediately?" msgstr "Kuri Gusohoka Ako kanya" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "" -#: src/lang.c:607 +#: src/lang.c:609 #, fuzzy msgid "Reading ('q' to quit)..." msgstr "Kuri Kuvamo" -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "" -#: src/lang.c:609 +#: src/lang.c:611 #, fuzzy, c-format msgid "Reading %sattributes file...\n" msgstr "IDOSIYE" -#: src/lang.c:610 +#: src/lang.c:612 #, fuzzy, c-format msgid "Reading %sconfig file...\n" msgstr "IDOSIYE" -#: src/lang.c:611 +#: src/lang.c:613 #, fuzzy msgid "Reading filter file...\n" msgstr "Muyunguruzi... IDOSIYE" -#: src/lang.c:612 +#: src/lang.c:614 #, fuzzy, c-format msgid "Reading %s groups..." msgstr "Amatsinda" -#: src/lang.c:613 +#: src/lang.c:615 #, fuzzy msgid "Reading input history file...\n" msgstr "Iyinjiza Urutonde IDOSIYE" -#: src/lang.c:614 +#: src/lang.c:616 #, fuzzy msgid "Reading keymap file...\n" msgstr "IDOSIYE" -#: src/lang.c:615 +#: src/lang.c:617 #, fuzzy msgid "Reading groups from active file... " msgstr "Amatsinda Bivuye Gikora IDOSIYE" -#: src/lang.c:616 +#: src/lang.c:618 #, fuzzy msgid "Reading groups from newsrc file... " msgstr "Amatsinda Bivuye IDOSIYE" -#: src/lang.c:617 +#: src/lang.c:619 #, fuzzy msgid "Reading newsgroups file... " msgstr "Imbuga z'amakuru IDOSIYE" -#: src/lang.c:618 +#: src/lang.c:620 #, fuzzy msgid "Reading newsrc file..." msgstr "IDOSIYE" -#: src/lang.c:620 +#: src/lang.c:621 +#, fuzzy +msgid "References: line " +msgstr "Umurongo" + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "" -#: src/lang.c:622 +#: src/lang.c:625 #, fuzzy, c-format msgid "Bogus group %s removed." msgstr "Itsinda Cyavanyweho" -#: src/lang.c:623 +#: src/lang.c:626 #, fuzzy, c-format msgid "Error: rename %s to %s" msgstr "Guhindura izina Kuri" -#: src/lang.c:624 +#: src/lang.c:627 #, fuzzy msgid "Reply to author..." msgstr "Kuri Umwanditsi" -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "" -#: src/lang.c:626 +#: src/lang.c:629 #, fuzzy msgid "Reposting article..." msgstr "Ingingo" -#: src/lang.c:627 +#: src/lang.c:630 #, fuzzy, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Ingingo S Kuri Itsinda S" -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "" -#: src/lang.c:629 +#: src/lang.c:632 #, fuzzy msgid "Responses have been directed to the following newsgroups" msgstr "Kuri i Imbuga z'amakuru" -#: src/lang.c:630 +#: src/lang.c:633 #, fuzzy, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Kuri Umuteguro Ubutumwa Iposita Kuvamo" -#: src/lang.c:631 +#: src/lang.c:634 #, fuzzy, c-format msgid "RespNo %4d of %4d" msgstr "Bya" -#: src/lang.c:632 +#: src/lang.c:635 #, fuzzy msgid "Press to continue..." msgstr "Kuri urifuzagukomeza" -#: src/lang.c:634 +#: src/lang.c:637 #, fuzzy, c-format msgid "Select From [%s] (y/n): " msgstr "Y N" -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:636 +#: src/lang.c:639 #, fuzzy msgid "Auto-select Article Menu" msgstr "Guhitamo" -#: src/lang.c:637 +#: src/lang.c:640 #, fuzzy, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "F L o N" -#: src/lang.c:638 +#: src/lang.c:641 #, fuzzy msgid "Select pattern scope: " msgstr "Ishusho Ingano:" -#: src/lang.c:639 +#: src/lang.c:642 #, fuzzy, c-format msgid "Select Subject [%s] (y/n): " msgstr "Y N" -#: src/lang.c:640 +#: src/lang.c:643 #, fuzzy msgid "Select text pattern : " msgstr "Umwandiko Ishusho" -#: src/lang.c:641 +#: src/lang.c:644 #, fuzzy msgid "Select time in days : " msgstr "Igihe in Iminsi" -#: src/lang.c:642 +#: src/lang.c:645 #, fuzzy, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2950,239 +2963,239 @@ msgid "# %s server configuration file\n" msgstr "#%sSeriveri Iboneza IDOSIYE ku buryo bwikora ku OYA Guhindura ni guhera Byose " "Amahinduka Kuri iyi Ryari: OYA Guhindura ku Byose NIBA" -#: src/lang.c:648 +#: src/lang.c:651 #, fuzzy msgid "Showing unread groups only" msgstr "Bidasomye Amatsinda" -#: src/lang.c:649 +#: src/lang.c:652 #, fuzzy msgid "Subject: line (ignore case) " msgstr "Umurongo Kwirengagiza" -#: src/lang.c:650 +#: src/lang.c:653 #, fuzzy msgid "Subject: line (case sensitive)" msgstr "Umurongo" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "Kubika" -#: src/lang.c:652 +#: src/lang.c:655 #, fuzzy, c-format msgid "Save '%s' (%s/%s)?" msgstr "Kubika" -#: src/lang.c:653 +#: src/lang.c:656 #, fuzzy msgid "Save configuration before continuing?" msgstr "Kubika Iboneza Mbere" -#: src/lang.c:654 +#: src/lang.c:657 #, fuzzy msgid "Save filename> " msgstr "Kubika Izina ry'idosiye:" -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "" -#: src/lang.c:656 +#: src/lang.c:659 #, fuzzy, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4dBidasomye in" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "" -#: src/lang.c:659 +#: src/lang.c:662 #, fuzzy, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "%s%d%sBivuye" -#: src/lang.c:660 +#: src/lang.c:663 #, fuzzy, c-format msgid "-- %s saved to %s%s --" msgstr "--%sKuri" -#: src/lang.c:661 +#: src/lang.c:664 #, fuzzy, c-format msgid "-- %s saved to %s - %s --" msgstr "--%sKuri" -#: src/lang.c:662 +#: src/lang.c:665 #, fuzzy msgid "Saving..." msgstr "Kubika%S" -#: src/lang.c:663 +#: src/lang.c:666 #, fuzzy, c-format msgid "%s: Screen initialization failed" msgstr "%s:Byanze" -#: src/lang.c:665 +#: src/lang.c:668 #, fuzzy, c-format msgid "%s: screen is too small\n" msgstr "%s:Mugaragaza ni" -#: src/lang.c:667 +#: src/lang.c:670 #, fuzzy, c-format msgid "screen is too small, %s is exiting\n" msgstr "Mugaragaza ni Gitoya ni" # svx/source\form\fmsearch.src:RID_SVXDLG_SEARCHFORM.CB_BACKWARD.text -#: src/lang.c:668 +#: src/lang.c:671 #, fuzzy, c-format msgid "Search backwards [%s]> " msgstr "Gushakisha inyuma" -#: src/lang.c:669 +#: src/lang.c:672 #, fuzzy, c-format msgid "Search body [%s]> " msgstr "Umubiri" -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "" # 5374 -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "Gushakisha..." -#: src/lang.c:672 +#: src/lang.c:675 #, fuzzy, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Ingingo Bya Kuri Kureka" -#: src/lang.c:673 +#: src/lang.c:676 #, fuzzy msgid "Select article> " msgstr "Ingingo" -#: src/lang.c:674 +#: src/lang.c:677 #, fuzzy msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Ihitamo Umubare Mbere Umwandiko Cyangwa Gukoresha Akambi Utubuto Na Kuri " "Kuvamo" -#: src/lang.c:675 +#: src/lang.c:678 #, fuzzy msgid "Select group> " msgstr "Itsinda" -#: src/lang.c:676 +#: src/lang.c:679 #, fuzzy, c-format msgid "Enter selection pattern [%s]> " msgstr "Ihitamo Ishusho" -#: src/lang.c:677 +#: src/lang.c:680 #, fuzzy msgid "Select thread > " msgstr "Urudodo" -#: src/lang.c:678 +#: src/lang.c:681 #, fuzzy, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s%s%s(\"%s\")[%s]:Kohereza a Icyegeranyo Kuri" -#: src/lang.c:679 +#: src/lang.c:682 #, fuzzy msgid "servers active-file" msgstr "Gikora IDOSIYE" -#: src/lang.c:680 +#: src/lang.c:683 #, fuzzy msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Kwimura Gishya Imbuga z'amakuru Itangira" -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "" -#: src/lang.c:683 +#: src/lang.c:686 #, fuzzy, c-format msgid "List Thread (%d of %d)" msgstr "Bya" -#: src/lang.c:684 +#: src/lang.c:687 #, fuzzy, c-format msgid "Thread (%.*s)" msgstr "S" -#: src/lang.c:685 +#: src/lang.c:688 #, fuzzy msgid "Enter wildcard subscribe pattern> " msgstr "Kwiyandikisha Ishusho" -#: src/lang.c:686 +#: src/lang.c:689 #, fuzzy, c-format msgid "subscribed to %d groups" msgstr "yanditswe/ byemewe Kuri Amatsinda" -#: src/lang.c:687 +#: src/lang.c:690 #, fuzzy, c-format msgid "Subscribed to %s" msgstr "Kuri" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "" -#: src/lang.c:689 +#: src/lang.c:692 #, fuzzy, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "Cyangwa Ingingo S" -#: src/lang.c:690 +#: src/lang.c:693 #, fuzzy, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Ingingo S Kuri Itsinda S" -#: src/lang.c:691 +#: src/lang.c:694 #, fuzzy msgid "Superseding article ..." msgstr "Ingingo" -#: src/lang.c:692 +#: src/lang.c:695 #, fuzzy, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "Kuri Ongera utangire" -#: src/lang.c:694 +#: src/lang.c:697 #, fuzzy, c-format msgid "%d days" msgstr "%dIminsi" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "" -#: src/lang.c:697 +#: src/lang.c:700 #, fuzzy msgid "# Default action/prompt strings\n" msgstr "#Igikorwa Urwinjiriro" -#: src/lang.c:698 +#: src/lang.c:701 #, fuzzy msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" @@ -3195,361 +3208,366 @@ msgstr "#kugirango 1. Urufunguzo Ikiyega "Iheruka Icyinjijwe 6 Icyinjijwe 7 Gukurikiza Kuri Byose Amatsinda Gukurikiza " "Kuri KIGEZWEHO Muyunguruzi... Kwirengagiza Kuri" -#: src/lang.c:711 +#: src/lang.c:714 #, fuzzy msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "#Gukoresha Gucapa KIGEZWEHO Ikivugwaho Cyangwa Urubuga rw'amakuru " "Isobanuramiterere in i Iheruka" -#: src/lang.c:712 +#: src/lang.c:715 #, fuzzy msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "#Igihe Ibisobanuro kugirango Gishya Amatsinda" -#: src/lang.c:713 +#: src/lang.c:716 #, fuzzy msgid "There is no news\n" msgstr "ni Oya" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "Urudodo" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "" -#: src/lang.c:717 +#: src/lang.c:720 #, fuzzy msgid "Thread selected" msgstr "Byahiswemo" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "" -#: src/lang.c:721 +#: src/lang.c:724 #, fuzzy msgid "Thread range" msgstr "Urutonde" -#: src/lang.c:722 +#: src/lang.c:725 #, fuzzy msgid "thread" msgstr "Urudodo" -#: src/lang.c:723 +#: src/lang.c:726 #, fuzzy, c-format msgid "Thread %4s of %4s" msgstr "Bya" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "" -#: src/lang.c:725 +#: src/lang.c:728 #, fuzzy, c-format msgid "Toggled word highlighting %s" msgstr "ijambo Igaragaza cyane" -#: src/lang.c:726 +#: src/lang.c:729 #, fuzzy msgid "Toggled rot13 encoding" msgstr "ROT13 Imisobekere:" -#: src/lang.c:727 +#: src/lang.c:730 #, fuzzy, c-format msgid "Toggled german TeX encoding %s" msgstr "Ikidage Imisobekere:" -#: src/lang.c:728 +#: src/lang.c:731 #, fuzzy, c-format msgid "Toggled tab-width to %d" msgstr "Isunika Ubugari Kuri" -#: src/lang.c:729 +#: src/lang.c:732 #, fuzzy, c-format msgid "%d Trying to dotlock %s" msgstr "%dKuri" -#: src/lang.c:730 +#: src/lang.c:733 #, fuzzy, c-format msgid "%d Trying to lock %s" msgstr "%dKuri" -#: src/lang.c:731 +#: src/lang.c:734 #, fuzzy msgid " h=help\n" msgstr "h" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "" -#: src/lang.c:734 +#: src/lang.c:737 #, fuzzy msgid "Enter wildcard unsubscribe pattern> " msgstr "Kwivana aho wiyandikishe Ishusho" -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "" -#: src/lang.c:736 +#: src/lang.c:739 #, fuzzy msgid "No end." msgstr "Impera" -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "" -#: src/lang.c:738 +#: src/lang.c:741 #, fuzzy, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[--%s/%s,%suuencodedIDOSIYE Imirongo Izina:" -#: src/lang.c:739 +#: src/lang.c:742 #, fuzzy msgid "unread " msgstr "Bidasomye" -#: src/lang.c:740 +#: src/lang.c:743 #, fuzzy, c-format msgid "unsubscribed from %d groups" msgstr "Bivuye Amatsinda" -#: src/lang.c:741 +#: src/lang.c:744 #, fuzzy, c-format msgid "Unsubscribed from %s" msgstr "Bivuye" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "Ivugurura" -#: src/lang.c:746 +#: src/lang.c:749 #, fuzzy, c-format msgid "Opening %s\n" msgstr "Gufungura %s%S" -#: src/lang.c:747 +#: src/lang.c:750 #, fuzzy msgid "No more URL's in this article" msgstr "Birenzeho in iyi Ingingo" -#: src/lang.c:748 +#: src/lang.c:751 #, fuzzy msgid "Use MIME display program for this message?" msgstr "Kugaragaza Porogaramu kugirango iyi Ubutumwa" -#: src/lang.c:749 +#: src/lang.c:752 #, fuzzy msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "-C Ikimenyetso Byose Amakuru Nka Gusoma in yanditswe/ byemewe Imbuga " "z'amakuru Ubwoko" -#: src/lang.c:750 +#: src/lang.c:753 #, fuzzy msgid " -Z return status indicating if any unread news (batch mode)" msgstr "-Garuka Imimerere NIBA Bidasomye Amakuru Ubwoko" -#: src/lang.c:751 +#: src/lang.c:754 #, fuzzy msgid " -q don't check for new newsgroups" msgstr "-Q Kugenzura... kugirango Gishya Imbuga z'amakuru" -#: src/lang.c:752 +#: src/lang.c:755 #, fuzzy msgid " -X don't save any files on quit" msgstr "-Kubika Idosiye ku Kuvamo" -#: src/lang.c:753 +#: src/lang.c:756 #, fuzzy msgid " -d don't show newsgroup descriptions" msgstr "-D Garagaza Urubuga rw'amakuru" -#: src/lang.c:754 +#: src/lang.c:757 #, fuzzy msgid " -G limit get only limit articles/group" msgstr "-Kubona Itsinda" -#: src/lang.c:755 +#: src/lang.c:758 #, fuzzy, c-format msgid " -H help information about %s" msgstr "-H Ifashayobora Ibisobanuro Ibyerekeye" -#: src/lang.c:756 +#: src/lang.c:759 #, fuzzy msgid " -h this help message" msgstr "-h iyi Ifashayobora Ubutumwa" -#: src/lang.c:757 +#: src/lang.c:760 #, fuzzy, c-format msgid " -I dir news index file directory [default=%s]" msgstr "-Amakuru Umubarendanga IDOSIYE bushyinguro Mburabuzi" -#: src/lang.c:758 +#: src/lang.c:761 #, fuzzy msgid " -u update index files (batch mode)" msgstr "-u Kuvugurura Umubarendanga Idosiye Ubwoko" -#: src/lang.c:759 +#: src/lang.c:762 #, fuzzy, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "-M bushyinguro Mburabuzi" -#: src/lang.c:760 +#: src/lang.c:763 #, fuzzy, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "Raporo Ibisobanuro Kuri" -#: src/lang.c:761 +#: src/lang.c:764 #, fuzzy msgid " -N mail new news to your posts (batch mode)" msgstr "-Ubutumwa Gishya Amakuru Kuri Ubwoko" -#: src/lang.c:762 +#: src/lang.c:765 #, fuzzy msgid " -M user mail new news to specified user (batch mode)" msgstr "-Ukoresha: Ubutumwa Gishya Amakuru Kuri Ukoresha: Ubwoko" -#: src/lang.c:763 +#: src/lang.c:766 #, fuzzy, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "-F IDOSIYE yanditswe/ byemewe Kuri Imbuga z'amakuru IDOSIYE Mburabuzi" -#: src/lang.c:764 +#: src/lang.c:767 #, fuzzy msgid " -x no posting mode" msgstr "-X Oya Ubwoko" -#: src/lang.c:765 +#: src/lang.c:768 #, fuzzy msgid " -w post an article and exit" msgstr "-W Iposita Ingingo Na Gusohoka" -#: src/lang.c:766 +#: src/lang.c:769 #, fuzzy msgid " -o post all postponed articles and exit" msgstr "-o Iposita Byose Na Gusohoka" -#: src/lang.c:767 +#: src/lang.c:770 #, fuzzy msgid " -r read news remotely from default NNTP server" msgstr "-R Gusoma Amakuru Bivuye Mburabuzi Seriveri" -#: src/lang.c:768 +#: src/lang.c:771 #, fuzzy msgid " -R read news saved by -S option" msgstr "-Gusoma Amakuru ku Ihitamo" -#: src/lang.c:769 +#: src/lang.c:772 #, fuzzy, c-format msgid " -s dir save news directory [default=%s]" msgstr "-S Kubika Amakuru bushyinguro Mburabuzi" -#: src/lang.c:770 +#: src/lang.c:773 #, fuzzy msgid " -S save new news for later reading (batch mode)" msgstr "-Kubika Gishya Amakuru kugirango Ubwoko" -#: src/lang.c:771 +#: src/lang.c:774 #, fuzzy msgid " -z start if any unread news" msgstr "-Z Gutangira NIBA Bidasomye Amakuru" -#: src/lang.c:772 +#: src/lang.c:775 #, fuzzy, c-format msgid "A Usenet reader.\n" "\n" "Usage: %s [options] [newsgroup[,...]]" msgstr "A Amahitamo Urubuga rw'amakuru" -#: src/lang.c:773 +#: src/lang.c:776 #, fuzzy msgid " -v verbose output for batch mode options" msgstr "-v Ibisohoka kugirango Ubwoko Amahitamo" -#: src/lang.c:774 +#: src/lang.c:777 #, fuzzy msgid " -V print version & date information" msgstr "-V Gucapa Verisiyo Itariki Ibisobanuro" -#: src/lang.c:775 +#: src/lang.c:778 #, fuzzy, c-format msgid "%s only useful without batch mode operations\n" msgstr "%sUbwoko" -#: src/lang.c:776 +#: src/lang.c:779 #, fuzzy, c-format msgid "%s only useful for batch mode operations\n" msgstr "%skugirango Ubwoko" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, fuzzy, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "%s%dInyuma Bya Urutonde 0 Kuri 0" -#: src/lang.c:779 +#: src/lang.c:783 #, fuzzy, c-format msgid "View '%s' (%s/%s)?" msgstr "Kureba" -#: src/lang.c:781 +#: src/lang.c:785 #, fuzzy, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" "%-100s\n" msgstr "Inkingi ni i Itangira" -#: src/lang.c:782 +#: src/lang.c:786 #, fuzzy msgid "\n" "Warning: article unchanged after editing\n" msgstr "Ingingo Nyuma" -#: src/lang.c:783 +#: src/lang.c:787 #, fuzzy msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "Kirimo" -#: src/lang.c:784 +#: src/lang.c:788 #, fuzzy msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "Na: Oya" -#: src/lang.c:786 +#: src/lang.c:790 #, fuzzy msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "OYA Na: Na OYA" -#: src/lang.c:789 +#: src/lang.c:793 #, fuzzy msgid "Read carefully!\n" "\n" @@ -3564,7 +3582,7 @@ msgid "Read carefully!\n" msgstr "Ibyerekeye Kuri Kureka Ingingo ku i Ingingo Bivuye Amakuru i ni Akazi ni i " "Ingingo Ibyerekeye Kuri Kureka" -#: src/lang.c:793 +#: src/lang.c:797 #, fuzzy msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" @@ -3574,7 +3592,7 @@ msgid "\n" msgstr "ikoresha a Byuzuye Imisobekere: Nka Gicapika Na external Porogaramu Kuri " "Tanga Ingingo a Isinya ni ku Porogaramu OYA" -#: src/lang.c:798 +#: src/lang.c:802 #, fuzzy, c-format msgid "\n" "\n" @@ -3583,7 +3601,7 @@ msgid "\n" "Read WHATSNEW, etc...\n" msgstr "Kuri Bivuye Verisiyo Uduciro in IDOSIYE Byahinduwe" -#: src/lang.c:800 +#: src/lang.c:804 #, fuzzy, c-format msgid "\n" "\n" @@ -3591,7 +3609,7 @@ msgid "\n" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "Kuri Bivuye a Birenzeho Verisiyo Uduciro in IDOSIYE Gicurasi Ibindi Byahinduwe" -#: src/lang.c:803 +#: src/lang.c:807 #, fuzzy, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3601,18 +3619,18 @@ msgid "Warning: tin wrote fewer groups t msgstr "Bike Amatsinda Kuri Gusoma ku Kwivana aho wiyandikishe Bivuye Umukoro iyi " "Ikosa Na Inyibutsa Mbere Gutangira Rimwe" -#: src/lang.c:807 +#: src/lang.c:811 #, fuzzy, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "Imirongo iyi Gicurasi Abantu" -#: src/lang.c:808 +#: src/lang.c:812 #, fuzzy, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Inyuma Bya" -#: src/lang.c:809 +#: src/lang.c:813 #, fuzzy, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3622,52 +3640,52 @@ msgid "\n" " possible.\n" msgstr "Isinya ni Imirongo OYA Ibisobanuro Nka" -#: src/lang.c:813 +#: src/lang.c:817 #, fuzzy, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "iyi Ubutumwa Aderesi Gicurasi a urifuzagukomeza Kureka" -#: src/lang.c:814 +#: src/lang.c:818 #, fuzzy msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "Gutangira Na: OYA Na:" -#: src/lang.c:815 +#: src/lang.c:819 #, fuzzy msgid "Writing attributes file..." msgstr "Ibiranga IDOSIYE" -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "" -#: src/lang.c:819 +#: src/lang.c:823 #, fuzzy, c-format msgid "Added %d %s" msgstr "Kyongewe" -#: src/lang.c:820 +#: src/lang.c:824 #, fuzzy msgid "No unsubscribed groups to show" msgstr "Amatsinda Kuri Garagaza" -#: src/lang.c:821 +#: src/lang.c:825 #, fuzzy msgid "Showing subscribed to groups only" msgstr "yanditswe/ byemewe Kuri Amatsinda" -#: src/lang.c:822 +#: src/lang.c:826 #, fuzzy msgid "Yes " msgstr "Yego" -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr "" -#: src/lang.c:828 +#: src/lang.c:832 #, fuzzy, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3681,12 +3699,12 @@ msgstr "ni in Na Kirimo Inyuguti in Byah "Ingingo Guhindura Na Gukuraho... Inyuguti Cyangwa Guhindura>> i Igenamiterere " "Kuri a Agaciro kugirango Biturutse Ihitamo" -#: src/lang.c:839 +#: src/lang.c:843 #, fuzzy msgid " -D debug mode 1=NNTP 2=ALL" msgstr "-Kosora amakosa Ubwoko 1. 2." -#: src/lang.c:843 +#: src/lang.c:847 #, fuzzy msgid "Read carefully!\n" "\n" @@ -3704,12 +3722,12 @@ msgid "Read carefully!\n" msgstr "Ibyerekeye Kuri Kureka Ingingo OYA ku Guhanagura i Ingingo Bivuye Bya Amakuru " "i iyi Kuri i Kanda NIBA Cyiteguye Kuri i ni i Ingingo Ibyerekeye Kuri Kureka" -#: src/lang.c:852 +#: src/lang.c:856 #, fuzzy msgid "toggle color" msgstr "Mukomatanya Ibara" -#: src/lang.c:853 +#: src/lang.c:857 #, fuzzy msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" @@ -3736,385 +3754,385 @@ msgstr "#Amabara Bya Mugaragaza Uduciro "kugirango Mbuganyuma 0 1. 2. 3. 4. 5 6 7 kugirango 8 9 kimurika 10 kimurika " "12 kimurika kimurika 14 kimurika 15 kimurika" -#: src/lang.c:873 +#: src/lang.c:877 #, fuzzy msgid " -a toggle color flag" msgstr "-a Mukomatanya Ibara Ibendera" -#: src/lang.c:877 +#: src/lang.c:881 #, fuzzy msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "Gushyiraho Kuri Birenzeho Urubuga rw'amakuru" -#: src/lang.c:878 +#: src/lang.c:882 #, fuzzy, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "Kwambukiranya Kuri Imbuga z'amakuru Na Oya Umurongo" -#: src/lang.c:879 +#: src/lang.c:883 #, fuzzy, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "ni OYA a Byemewe Urubuga rw'amakuru" -#: src/lang.c:881 +#: src/lang.c:885 #, fuzzy msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "Gushyiraho Kuri Birenzeho Urubuga rw'amakuru" -#: src/lang.c:882 +#: src/lang.c:886 #, fuzzy, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "Kwambukiranya Kuri Imbuga z'amakuru Na Oya Umurongo" -#: src/lang.c:883 +#: src/lang.c:887 #, fuzzy, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "ni OYA in Gicurasi Sibyo ku iyi Ipaji" -#: src/lang.c:884 +#: src/lang.c:888 #, fuzzy, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "ni OYA a Byemewe Urubuga rw'amakuru ku iyi Ipaji" -#: src/lang.c:888 +#: src/lang.c:892 #, fuzzy, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "%dIdosiye Bivuye" -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "" -#: src/lang.c:890 +#: src/lang.c:894 #, fuzzy msgid "No beginning." msgstr "Itangiriro" -#: src/lang.c:891 +#: src/lang.c:895 #, fuzzy msgid "No data." msgstr "Ibyatanzwe" # # @name OTHER # # @loc none -#: src/lang.c:892 +#: src/lang.c:896 #, fuzzy msgid "Unknown error." msgstr "Ikosa itazwi" -#: src/lang.c:895 +#: src/lang.c:899 #, fuzzy, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "Bya" -#: src/lang.c:900 +#: src/lang.c:904 #, fuzzy msgid "Reading mail active file... " msgstr "Ubutumwa Gikora IDOSIYE" -#: src/lang.c:901 +#: src/lang.c:905 #, fuzzy msgid "Reading mailgroups file... " msgstr "IDOSIYE" -#: src/lang.c:905 +#: src/lang.c:909 #, fuzzy msgid "perform PGP operations on article" msgstr "Ibikorwa: ku Ingingo" -#: src/lang.c:906 +#: src/lang.c:910 #, fuzzy msgid "Add key(s) to public keyring?" msgstr "Urufunguzo S Kuri Rusange" -#: src/lang.c:907 +#: src/lang.c:911 #, fuzzy, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=Shyiraho Umutekano IKIMENYETSO Byombi Kuvamo" -#: src/lang.c:908 +#: src/lang.c:912 #, fuzzy, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=IKIMENYETSO IKIMENYETSO Gushyiramo Rusange Urufunguzo Kuvamo" -#: src/lang.c:909 +#: src/lang.c:913 #, fuzzy, c-format msgid "PGP has not been set up (can't open %s)" msgstr "OYA Gushyiraho Hejuru Gufungura" -#: src/lang.c:910 +#: src/lang.c:914 #, fuzzy msgid "Article not signed and no public keys found" msgstr "OYA Na Oya Rusange Utubuto Byabonetse" -#: src/lang.c:912 +#: src/lang.c:916 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:913 +#: src/lang.c:917 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "%s=Kuvamo Guhindura Kohereza" -#: src/lang.c:914 +#: src/lang.c:918 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:916 +#: src/lang.c:920 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:917 +#: src/lang.c:921 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=Kuvamo Guhindura Kohereza" -#: src/lang.c:918 +#: src/lang.c:922 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:922 +#: src/lang.c:926 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:923 +#: src/lang.c:927 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=Kuvamo Guhindura Kohereza" -#: src/lang.c:924 +#: src/lang.c:928 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:926 +#: src/lang.c:930 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:927 +#: src/lang.c:931 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=Kuvamo Guhindura Kohereza" -#: src/lang.c:928 +#: src/lang.c:932 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=Kuvamo Guhindura Ibikubiyemo Iposita" -#: src/lang.c:937 +#: src/lang.c:941 #, fuzzy msgid "Try cache_overview_files to speed up things.\n" msgstr "Kuri Umuvuduko Hejuru" -#: src/lang.c:938 +#: src/lang.c:942 #, fuzzy msgid "Tin will use local index files instead.\n" msgstr "Gukoresha Umubarendanga Idosiye" -#: src/lang.c:939 +#: src/lang.c:943 #, fuzzy msgid "Cannot find NNTP server name" msgstr "Gushaka Seriveri Izina:" -#: src/lang.c:940 +#: src/lang.c:944 #, fuzzy, c-format msgid "Connecting to %s:%d..." msgstr "Kwihuza na\"\"..." -#: src/lang.c:941 +#: src/lang.c:945 #, fuzzy msgid "Disconnecting from server...\n" msgstr "Bivuye Seriveri" -#: src/lang.c:942 +#: src/lang.c:946 #, fuzzy, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Urubuga rw'amakuru Izina: in Bya Komandi: kugirango" -#: src/lang.c:943 +#: src/lang.c:947 #, fuzzy, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "Kuri Kwihuza Kuri Seriveri" -#: src/lang.c:944 +#: src/lang.c:948 #, fuzzy msgid "205 Closing connection" msgstr "Ukwihuza" -#: src/lang.c:945 +#: src/lang.c:949 #, fuzzy msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "Seriveri OYA Gushigikira i Cyangwa Komandi:" -#: src/lang.c:946 +#: src/lang.c:950 #, fuzzy msgid "Connection to news server has timed out. Reconnect?" msgstr "Kongerakwihuza." -#: src/lang.c:947 +#: src/lang.c:951 #, fuzzy, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "i Seriveri Izina: in i IDOSIYE Cyangwa Gushyiraho i IMPINDURAGACIRO" -#: src/lang.c:948 +#: src/lang.c:952 #, fuzzy msgid " -A force authentication on connect" msgstr "-A ku Kwihuza" -#: src/lang.c:949 +#: src/lang.c:953 #, fuzzy, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "-g Gusoma Amakuru Bivuye Seriveri Mburabuzi" -#: src/lang.c:950 +#: src/lang.c:954 #, fuzzy, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "-P Umuyoboro Gukoresha Umuyoboro Nka Umuyoboro Mburabuzi" -#: src/lang.c:951 +#: src/lang.c:955 #, fuzzy msgid " -Q quick start. Same as -nqd" msgstr "-Gutangira Nka" -#: src/lang.c:952 +#: src/lang.c:956 #, fuzzy msgid " -l use only LIST instead of GROUP (-n) command" msgstr "-L Gukoresha Bya N Komandi:" -#: src/lang.c:953 +#: src/lang.c:957 #, fuzzy msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "-N Gusoma yanditswe/ byemewe Amatsinda Bivuye Seriveri" -#: src/lang.c:955 +#: src/lang.c:959 #, fuzzy, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/Serivisi" -#: src/lang.c:958 +#: src/lang.c:962 #, fuzzy msgid "\n" "socket or connect problem\n" msgstr "Cyangwa Kwihuza" -#: src/lang.c:960 +#: src/lang.c:964 #, fuzzy, c-format msgid "\n" "Connection to %s: " msgstr "Kuri" -#: src/lang.c:961 +#: src/lang.c:965 #, fuzzy msgid "Giving up...\n" msgstr "Hejuru" -#: src/lang.c:964 +#: src/lang.c:968 #, fuzzy msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "Seriveri OYA in Ibisobanuro Kuri Gukoresha Hasi a" -#: src/lang.c:967 +#: src/lang.c:971 #, fuzzy msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "Seriveri OYA in Ibisobanuro" -#: src/lang.c:970 +#: src/lang.c:974 #, fuzzy, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "Gufungura R Kuri Gusoma Amakuru Biturutse" -#: src/lang.c:973 +#: src/lang.c:977 #, fuzzy msgid " -Q quick start. Same as -qd" msgstr "-Gutangira Nka" -#: src/lang.c:974 +#: src/lang.c:978 #, fuzzy msgid " -l read only active file instead of scanning spool (-n) command" msgstr "-L Gusoma Gikora IDOSIYE Bya N Komandi:" -#: src/lang.c:975 +#: src/lang.c:979 #, fuzzy msgid " -n only read subscribed .newsrc groups from spool" msgstr "-N Gusoma yanditswe/ byemewe Amatsinda Bivuye" -#: src/lang.c:976 +#: src/lang.c:980 #, fuzzy msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Seriveri OYA in Idosiye" -#: src/lang.c:980 +#: src/lang.c:984 #, fuzzy msgid "Posting using external inews failed. Use built in inews instead?" msgstr "ikoresha external Byanze in" -#: src/lang.c:981 +#: src/lang.c:985 #, fuzzy msgid "It worked! Should I always use my built in inews from now on?" msgstr "Buri gihe Gukoresha in Bivuye NONEAHA ku" -#: src/lang.c:985 +#: src/lang.c:989 #, fuzzy, c-format msgid "%d %s printed" msgstr "%d%sByacapwe" -#: src/lang.c:986 +#: src/lang.c:990 #, fuzzy msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "Ibisohoka Ingingo Urudodo Ishusho Kuri Mucapyi" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "Gucapa" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "Icapa..." -#: src/lang.c:992 +#: src/lang.c:996 #, fuzzy msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "Ingingo Urudodo Ishusho Komandi:" -#: src/lang.c:993 +#: src/lang.c:997 #, fuzzy msgid "No command" msgstr "Komandi:" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "" -#: src/lang.c:995 +#: src/lang.c:999 #, fuzzy, c-format msgid "Pipe to command [%.*s]> " msgstr "Kuri Komandi: S" -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "" -#: src/lang.c:998 +#: src/lang.c:1002 #, fuzzy msgid "Piping not enabled." msgstr "OYA Bikora" -#: src/lang.c:1002 +#: src/lang.c:1006 #, fuzzy, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -4124,7 +4142,7 @@ msgid "\n" msgstr "Umurongo Imyanya in Cyavanyweho Umwanya ni i i Bivuye i Ibigize a Akitso Kuri " "Urubuga rw'amakuru Amazina" -#: src/lang.c:1007 +#: src/lang.c:1011 #, fuzzy, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -4133,7 +4151,7 @@ msgid "\n" msgstr "Umurongo ni in i Komeza>> Umurongo i Umurongo Gicurasi OYA iyi ni OYA " "Kwandika Byose Imbuga z'amakuru a UMWE Umurongo" -#: src/lang.c:1012 +#: src/lang.c:1016 #, fuzzy, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -4142,13 +4160,13 @@ msgid "\n" msgstr "Umurongo ni in i Komeza>> Umurongo ni a Gishya Na Gicurasi OYA Byemewe ku " "Byose Kwandika Byose Imbuga z'amakuru a UMWE Umurongo" -#: src/lang.c:1016 +#: src/lang.c:1020 #, fuzzy, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "Umurongo Imyanya in Cyavanyweho" -#: src/lang.c:1021 +#: src/lang.c:1025 #, fuzzy msgid "\n" " If your article contains quoted text please take some time to pare it " @@ -4174,545 +4192,567 @@ msgstr "Ingingo Kirimo Umwandiko Igihe K "Gusoma Kwandika Na in Ihinduramiterere Abantu Kuri Kwirengagiza a Cyuzuye " "Inyuma" -#: src/lang.c:1034 +#: src/lang.c:1038 #, fuzzy msgid "shell escape" msgstr "Igikonoshwa" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "" -#: src/lang.c:1036 +#: src/lang.c:1040 #, fuzzy, c-format msgid "Enter shell command [%s]> " msgstr "Igikonoshwa Komandi:" -#: src/lang.c:1040 +#: src/lang.c:1044 #, fuzzy, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s:Kubona Icyinjijwe kugirango" -#: src/lang.c:1044 +#: src/lang.c:1048 #, fuzzy, c-format msgid "Group %.*s ('q' to quit)..." msgstr "S Kuri Kuvamo" -#: src/lang.c:1046 +#: src/lang.c:1050 #, fuzzy, c-format msgid "Group %.*s..." msgstr "S" -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "" -#: src/lang.c:1056 +#: src/lang.c:1060 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=Ubutumwa Gucapa Kuvamo Mukomatanya Byose Bidasomye Kubika Itagi: Iposita" -#: src/lang.c:1057 +#: src/lang.c:1061 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Gucapa Kuvamo Subiza Ubutumwa Kubika Itagi: Iposita" -#: src/lang.c:1059 +#: src/lang.c:1063 #, fuzzy, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Gucapa Kuvamo Mukomatanya Byose Bidasomye Kubika Itagi: Iposita" -#: src/lang.c:1060 +#: src/lang.c:1064 #, fuzzy, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Gucapa Kuvamo Subiza Ubutumwa Kubika Itagi: Iposita" -#: src/lang.c:1064 +#: src/lang.c:1068 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Kuvamo Mukomatanya Byose Bidasomye Kubika Itagi: Iposita" -#: src/lang.c:1065 +#: src/lang.c:1069 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Kuvamo Subiza Ubutumwa Kubika Itagi: Iposita" -#: src/lang.c:1067 +#: src/lang.c:1071 #, fuzzy, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Kuvamo Mukomatanya Byose Bidasomye Kubika Itagi: Iposita" -#: src/lang.c:1068 +#: src/lang.c:1072 #, fuzzy, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=Ubutumwa Kuvamo Subiza Ubutumwa Kubika Itagi: Iposita" -#: src/lang.c:1074 +#: src/lang.c:1078 #, fuzzy msgid "Terminal does not support color" msgstr "OYA Gushigikira Ibara" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "" # goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.RB_COMPRESSION_NONE.text -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "Nta na kimwe" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "Ikivugwaho" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "Indango" -#: src/lang.c:1096 +#: src/lang.c:1100 #, fuzzy msgid "Both Subject and References" msgstr "Na" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "Oya" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "Yego" -#: src/lang.c:1112 +#: src/lang.c:1116 #, fuzzy msgid "Hide All" msgstr "Guhisha byose" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "Aderesi" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "" -#: src/lang.c:1122 +#: src/lang.c:1126 #, fuzzy msgid "Address and Name" msgstr "Na" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "Kinini" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "Igiteranyo" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "Impuzandengo" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "Imirongo" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "Umukara" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "Umutuku" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "Icyatsi" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "Igihogo" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "Ubururu" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "Ubururu bukeye" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "Umweru" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Ikigina" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "Umutuku Werurutse" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "Icyatsi Cyerurutse" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "Umuhondo" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "Ubururu Bwerurutse" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "Ubururu Bwerurutse" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "" # 3737 -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "garagaza" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "Umwanya" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "Bisanzwe" -#: src/lang.c:1180 +#: src/lang.c:1184 #, fuzzy msgid "Best highlighting" msgstr "Igaragaza cyane" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "Gucaho umurongo" -#: src/lang.c:1182 +#: src/lang.c:1186 #, fuzzy msgid "Reverse video" msgstr "Videwo..." -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "Kinyoteera" -#: src/lang.c:1184 +#: src/lang.c:1188 #, fuzzy msgid "Half bright" msgstr "Bibonerana" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "Bitsindagiye" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "ntacyo" # sfx2/source\doc\docvor.src:DLG_ORGANIZE.BTN_EDIT.text -#: src/lang.c:1191 +#: src/lang.c:1195 #, fuzzy msgid "commands" msgstr "Amabwiriza" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "guhitamo" -#: src/lang.c:1194 +#: src/lang.c:1198 #, fuzzy msgid "commands & quit" msgstr "Amabwiriza Kuvamo" -#: src/lang.c:1195 +#: src/lang.c:1199 #, fuzzy msgid "commands & select" msgstr "Amabwiriza Guhitamo" -#: src/lang.c:1196 +#: src/lang.c:1200 #, fuzzy msgid "quit & select" msgstr "Kuvamo Guhitamo" -#: src/lang.c:1197 +#: src/lang.c:1201 #, fuzzy msgid "commands & quit & select" msgstr "Amabwiriza Kuvamo Guhitamo" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "" -#: src/lang.c:1228 +#: src/lang.c:1240 #, fuzzy msgid "Subject: (descending)" msgstr "Ubujyesi" -#: src/lang.c:1229 +#: src/lang.c:1241 #, fuzzy msgid "Subject: (ascending)" msgstr "Ubujyejuru" -#: src/lang.c:1230 +#: src/lang.c:1242 #, fuzzy msgid "From: (descending)" msgstr "Ubujyesi" -#: src/lang.c:1231 +#: src/lang.c:1243 #, fuzzy msgid "From: (ascending)" msgstr "Ubujyejuru" -#: src/lang.c:1232 +#: src/lang.c:1244 #, fuzzy msgid "Date: (descending)" msgstr "Ubujyesi" -#: src/lang.c:1233 +#: src/lang.c:1245 #, fuzzy msgid "Date: (ascending)" msgstr "Ubujyejuru" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 #, fuzzy msgid "Score (descending)" msgstr "Ubujyesi" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 #, fuzzy msgid "Score (ascending)" msgstr "Ubujyejuru" -#: src/lang.c:1236 +#: src/lang.c:1248 #, fuzzy msgid "Lines: (descending)" msgstr "Ubujyesi" -#: src/lang.c:1237 +#: src/lang.c:1249 #, fuzzy msgid "Lines: (ascending)" msgstr "Ubujyejuru" -#: src/lang.c:1248 +#: src/lang.c:1256 +#, fuzzy +msgid "Last posting date (descending)" +msgstr "Ubujyesi" + +#: src/lang.c:1257 +#, fuzzy +msgid "Last posting date (ascending)" +msgstr "Ubujyejuru" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1264 #, fuzzy msgid "Mark with D on selection screen" msgstr "Na: ku Ihitamo Mugaragaza" -#: src/lang.c:1255 +#: src/lang.c:1269 #, fuzzy msgid "Kill only unread arts" msgstr "Bidasomye" -#: src/lang.c:1256 +#: src/lang.c:1270 #, fuzzy msgid "Kill all arts & show with K" msgstr "Byose Garagaza Na:" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 #, fuzzy msgid "Kill all arts and never show" msgstr "Byose Na Nta narimwe Garagaza" -#: src/lang.c:1262 +#: src/lang.c:1276 #, fuzzy msgid "Nothing special" msgstr "Bidasanzwe" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "" -#: src/lang.c:1265 +#: src/lang.c:1279 #, fuzzy msgid "Compress quotes, quote sigs" msgstr "Gushyiraho akugarizo" -#: src/lang.c:1266 +#: src/lang.c:1280 #, fuzzy msgid "Quote empty lines" msgstr "ubusa Imirongo" -#: src/lang.c:1267 +#: src/lang.c:1281 #, fuzzy msgid "Compress quotes, quote empty lines" msgstr "Gushyiraho akugarizo ubusa Imirongo" -#: src/lang.c:1268 +#: src/lang.c:1282 #, fuzzy msgid "Quote sigs & empty lines" msgstr "ubusa Imirongo" -#: src/lang.c:1269 +#: src/lang.c:1283 #, fuzzy msgid "Comp. q., quote sigs & empty lines" msgstr "Q." -#: src/lang.c:1307 +#: src/lang.c:1321 #, fuzzy msgid "no" msgstr "Oya" -#: src/lang.c:1308 +#: src/lang.c:1322 #, fuzzy msgid "with headers" msgstr "Na: Imitwe" -#: src/lang.c:1309 +#: src/lang.c:1323 #, fuzzy msgid "without headers" msgstr "Imitwe" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1374 +#: src/lang.c:1388 #, fuzzy msgid "Show mini menu & posting etiquette" msgstr "Ibikubiyemo" -#: src/lang.c:1375 +#: src/lang.c:1389 #, fuzzy msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "#Garagaza a Ibikubiyemo Bya Amabwiriza ku Na Nyuma" -#: src/lang.c:1380 +#: src/lang.c:1394 #, fuzzy msgid "Show short description for each newsgroup. toggles & sets." msgstr "Isobanuramiterere kugirango Urubuga rw'amakuru" -#: src/lang.c:1381 +#: src/lang.c:1395 #, fuzzy msgid "Show description of each newsgroup" msgstr "Isobanuramiterere Bya Urubuga rw'amakuru" -#: src/lang.c:1382 +#: src/lang.c:1396 #, fuzzy msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "#Garagaza Itsinda Isobanuramiterere Umwandiko Nyuma Urubuga rw'amakuru Izina: " "Itsinda Ihitamo" -#: src/lang.c:1387 +#: src/lang.c:1401 #, fuzzy msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Umwanditsi Imyanya in Itsinda Ibikubiyemo" -#: src/lang.c:1388 +#: src/lang.c:1402 #, fuzzy msgid "In group menu, show author by" msgstr "Itsinda Ibikubiyemo Garagaza Umwanditsi ku" -#: src/lang.c:1389 +#: src/lang.c:1403 #, fuzzy msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" @@ -4722,37 +4762,37 @@ msgid "# Part of from field to display\n "# 3 = both\n" msgstr "#Bya Bivuye Umwanya Kuri Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3." -#: src/lang.c:1398 +#: src/lang.c:1412 #, fuzzy msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Cyangwa kugirango Ihitamo" -#: src/lang.c:1399 +#: src/lang.c:1413 #, fuzzy msgid "Draw -> instead of highlighted bar" msgstr "Bya" -#: src/lang.c:1400 +#: src/lang.c:1414 #, fuzzy msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "#Gukoresha kugirango" -#: src/lang.c:1405 +#: src/lang.c:1419 #, fuzzy msgid "Use inverse video for page headers" msgstr "Videwo... kugirango Ipaji Imitwe" -#: src/lang.c:1406 +#: src/lang.c:1420 #, fuzzy msgid "# If ON use inverse video for page headers at different levels\n" msgstr "#Gukoresha Videwo... kugirango Ipaji Imitwe ku" -#: src/lang.c:1411 +#: src/lang.c:1425 #, fuzzy msgid "Thread articles by" msgstr "ku" -#: src/lang.c:1412 +#: src/lang.c:1426 #, fuzzy msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -4764,15 +4804,15 @@ msgid "# Thread articles by ...\n" "# 5 = Percentage Match\n" msgstr "# ku Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. Na 4." -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4785,12 +4825,12 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 #, fuzzy msgid "Score of a thread" msgstr "Bya a Urudodo" -#: src/lang.c:1438 +#: src/lang.c:1452 #, fuzzy msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" @@ -4799,17 +4839,17 @@ msgid "# Thread score\n" "# 2 = average\n" msgstr "#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2." -#: src/lang.c:1446 +#: src/lang.c:1460 #, fuzzy msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "ku Cyangwa" -#: src/lang.c:1447 +#: src/lang.c:1461 #, fuzzy msgid "Sort articles by" msgstr "ku" -#: src/lang.c:1448 +#: src/lang.c:1462 #, fuzzy msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -4826,70 +4866,72 @@ msgid "# Sort articles by ...\n" "# 10 = Lines ascending\n" msgstr "#ku Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. 4. 5 6 7 8 9 10" -#: src/lang.c:1464 +#: src/lang.c:1478 #, fuzzy msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "ku Cyangwa" -#: src/lang.c:1465 +#: src/lang.c:1479 #, fuzzy msgid "Sort threads by" msgstr "ku" -#: src/lang.c:1466 +#: src/lang.c:1480 #, fuzzy msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "#Urudodo ku Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2." -#: src/lang.c:1474 +#: src/lang.c:1490 #, fuzzy msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "indanga ku Itangira Iheruka Bidasomye in Amatsinda" -#: src/lang.c:1475 +#: src/lang.c:1491 #, fuzzy msgid "Goto first unread article in group" msgstr "Itangira Bidasomye Ingingo in Itsinda" -#: src/lang.c:1476 +#: src/lang.c:1492 #, fuzzy msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "#Gushyira indanga ku Itangira Bidasomye in Itsinda Iheruka" -#: src/lang.c:1480 +#: src/lang.c:1496 #, fuzzy msgid "Show all articles or only unread articles. toggles & sets." msgstr "Byose Cyangwa Bidasomye" -#: src/lang.c:1481 +#: src/lang.c:1497 #, fuzzy msgid "Show only unread articles" msgstr "Bidasomye" -#: src/lang.c:1482 +#: src/lang.c:1498 #, fuzzy msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "#Garagaza Gishya Bidasomye Garagaza Byose" -#: src/lang.c:1487 +#: src/lang.c:1503 #, fuzzy msgid "Show only groups with unread arts" msgstr "Amatsinda Na: Bidasomye" -#: src/lang.c:1488 +#: src/lang.c:1504 #, fuzzy msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "#Garagaza yanditswe/ byemewe Kuri Amatsinda Bidasomye" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "" -#: src/lang.c:1494 +#: src/lang.c:1510 #, fuzzy msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" @@ -4899,226 +4941,198 @@ msgid "# Filter which articles\n" msgstr "#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 Bidasomye 1. Byose Na Garagaza " "in cy/ byagarajwe Na: 2. Byose Na Nta narimwe Garagaza" -#: src/lang.c:1503 -#, fuzzy -msgid "Tab goes to next unread article" -msgstr "Kuri Komeza>> Bidasomye Ingingo" - -#: src/lang.c:1504 -#, fuzzy -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "#i Komandi: Gyayo Kuri Komeza>> Bidasomye Ingingo ku Ingingo" - -#: src/lang.c:1508 -#, fuzzy -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "Na: i Impera Bya Kuri i Komeza>> Bidasomye" - -#: src/lang.c:1509 -#, fuzzy -msgid "Space goes to next unread article" -msgstr "Kuri Komeza>> Bidasomye Ingingo" - -#: src/lang.c:1510 -#, fuzzy -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "#i Komandi: Gyayo Kuri Komeza>> Bidasomye Ingingo ku Ingingo urwego Ryari: i " - "Impera Bya i Ingingo ni IMISUSIRE Peja" - -#: src/lang.c:1515 -#, fuzzy -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "Na: i Impera Bya Kuri i Bidasomye" - -#: src/lang.c:1516 +#: src/lang.c:1519 #, fuzzy -msgid "PgDn goes to next unread article" -msgstr "Kuri Komeza>> Bidasomye Ingingo" +msgid "Go to the next unread article with" +msgstr "Komeza>> Bidasomye Ingingo" -#: src/lang.c:1517 +#: src/lang.c:1520 #, fuzzy -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "#i Cyangwa Komandi: Gyayo Kuri Komeza>> Bidasomye Ingingo ku Impera Bya" +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" +msgstr "#in Ingingo Urudodo Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. " + "Imirongo" -#: src/lang.c:1523 +#: src/lang.c:1530 #, fuzzy msgid "List thread using right arrow key" msgstr "Urudodo ikoresha Iburyo: Akambi Urufunguzo" -#: src/lang.c:1524 +#: src/lang.c:1531 #, fuzzy msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "#ku buryo bwikora Urutonde Urudodo Ryari: ikoresha Iburyo: Akambi Urufunguzo" -#: src/lang.c:1528 +#: src/lang.c:1535 #, fuzzy msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Inyuguti Kuri Cyasibwe" -#: src/lang.c:1529 +#: src/lang.c:1536 #, fuzzy msgid "Character to show deleted articles" msgstr "Kuri Garagaza Cyasibwe" -#: src/lang.c:1530 +#: src/lang.c:1537 #, fuzzy msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza Cyasibwe Mburabuzi ni" -#: src/lang.c:1535 +#: src/lang.c:1542 #, fuzzy msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Inyuguti Kuri in a Urutonde" -#: src/lang.c:1536 +#: src/lang.c:1543 #, fuzzy msgid "Character to show inrange articles" msgstr "Kuri Garagaza" -#: src/lang.c:1537 +#: src/lang.c:1544 #, fuzzy msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza ni in a Urutonde Mburabuzi ni" -#: src/lang.c:1542 +#: src/lang.c:1549 #, fuzzy msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Inyuguti Kuri Ingingo Garuka" -#: src/lang.c:1543 +#: src/lang.c:1550 #, fuzzy msgid "Character to show returning arts" msgstr "Kuri Garagaza" -#: src/lang.c:1544 +#: src/lang.c:1551 #, fuzzy msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza Garuka Mburabuzi ni" -#: src/lang.c:1549 +#: src/lang.c:1556 #, fuzzy msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Inyuguti Kuri Byahiswemo" -#: src/lang.c:1550 +#: src/lang.c:1557 #, fuzzy msgid "Character to show selected articles" msgstr "Kuri Garagaza Byahiswemo" -#: src/lang.c:1551 +#: src/lang.c:1558 #, fuzzy msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza Ikiyega Byahiswemo Mburabuzi ni" -#: src/lang.c:1556 +#: src/lang.c:1563 #, fuzzy msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Inyuguti Kuri" -#: src/lang.c:1557 +#: src/lang.c:1564 #, fuzzy msgid "Character to show recent articles" msgstr "Kuri Garagaza" -#: src/lang.c:1558 +#: src/lang.c:1565 #, fuzzy msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza ni Mburabuzi ni" -#: src/lang.c:1563 +#: src/lang.c:1570 #, fuzzy msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Inyuguti Kuri Bidasomye" -#: src/lang.c:1564 +#: src/lang.c:1571 #, fuzzy msgid "Character to show unread articles" msgstr "Kuri Garagaza Bidasomye" -#: src/lang.c:1565 +#: src/lang.c:1572 #, fuzzy msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza ni Bidasomye Mburabuzi ni" -#: src/lang.c:1570 +#: src/lang.c:1577 #, fuzzy msgid "Enter character to indicate read articles. sets, cancels." msgstr "Inyuguti Kuri Gusoma" -#: src/lang.c:1571 +#: src/lang.c:1578 #, fuzzy msgid "Character to show read articles" msgstr "Kuri Garagaza Gusoma" -#: src/lang.c:1572 +#: src/lang.c:1579 #, fuzzy msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "#Kuri Garagaza Gusoma Mburabuzi ni" -#: src/lang.c:1577 +#: src/lang.c:1584 #, fuzzy msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Inyuguti Kuri" -#: src/lang.c:1578 +#: src/lang.c:1585 #, fuzzy msgid "Character to show killed articles" msgstr "Kuri Garagaza" -#: src/lang.c:1579 +#: src/lang.c:1586 #, fuzzy msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "#Kuri Garagaza Mburabuzi Gushyiraho ni" -#: src/lang.c:1584 +#: src/lang.c:1591 #, fuzzy msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Inyuguti Kuri Gusoma Byahiswemo" -#: src/lang.c:1585 +#: src/lang.c:1592 #, fuzzy msgid "Character to show readselected arts" msgstr "Kuri Garagaza" -#: src/lang.c:1586 +#: src/lang.c:1593 #, fuzzy msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "#Kuri Garagaza Byahiswemo Mbere Gusoma Mburabuzi Gushyiraho ni" -#: src/lang.c:1591 +#: src/lang.c:1598 #, fuzzy msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Kinini Uburebure Bya Urubuga rw'amakuru Amazina" -#: src/lang.c:1592 +#: src/lang.c:1599 #, fuzzy msgid "Max. length of group names shown" msgstr "Uburebure Bya Itsinda Amazina" -#: src/lang.c:1593 +#: src/lang.c:1600 #, fuzzy msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "#Uburebure Bya i Amazina Bya Imbuga z'amakuru" -#: src/lang.c:1598 +#: src/lang.c:1605 #, fuzzy msgid "Show lines/score in listings" msgstr "Imirongo in" -#: src/lang.c:1599 +#: src/lang.c:1606 #, fuzzy msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" @@ -5129,19 +5143,19 @@ msgid "# What informations should be dis msgstr "#in Ingingo Urudodo Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. " "Imirongo" -#: src/lang.c:1608 +#: src/lang.c:1615 #, fuzzy msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 Ipaji 1. Garagaza Ibanjirije Iheruka Umurongo Nka Itangira ku Komeza>> " "Ipaji 2. Ipaji" -#: src/lang.c:1609 +#: src/lang.c:1616 #, fuzzy msgid "Number of lines to scroll in pager" msgstr "Bya Imirongo Kuri in Peja" -#: src/lang.c:1610 +#: src/lang.c:1617 #, fuzzy msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" @@ -5155,30 +5169,30 @@ msgstr "#Bya Imirongo indanga Hejuru Has "Ipaji ku Ipaji imyitwarire 1. Umurongo ku 2. Cyangwa Biruta ku 2. Cyangwa " "Birenzeho Imirongo in i Peja" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1629 #, fuzzy msgid "# If OFF don't show signatures when displaying articles\n" msgstr "#Garagaza Ryari:" -#: src/lang.c:1626 +#: src/lang.c:1633 #, fuzzy msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Ibyatanzwe Nka Imigereka" -#: src/lang.c:1627 +#: src/lang.c:1634 #, fuzzy msgid "Display uue data as an attachment" msgstr "Ibyatanzwe Nka umugereka" -#: src/lang.c:1628 +#: src/lang.c:1635 #, fuzzy msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" @@ -5192,33 +5206,33 @@ msgstr "#Bya Ibyatanzwe in i Uduciro i M "Na Izina ry'idosiye: Kuri Imigereka 2. Gushisha Byose Nka kugirango 1. " "Umurongo nka Ibyatanzwe a Itagi: Umurongo" -#: src/lang.c:1638 +#: src/lang.c:1645 #, fuzzy msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "IMISUSIRE Kuri" -#: src/lang.c:1639 +#: src/lang.c:1646 #, fuzzy msgid "Display \"a as Umlaut-a" msgstr "a Nka a" -#: src/lang.c:1640 +#: src/lang.c:1647 #, fuzzy msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "#IMISUSIRE Kuri Garagaza a Nka a" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 #, fuzzy msgid "Space separated list of header fields" msgstr "Urutonde Bya Umutwempangano Imyanya" -#: src/lang.c:1646 +#: src/lang.c:1653 #, fuzzy msgid "Display these header fields (or *)" msgstr "Umutwempangano Imyanya Cyangwa" -#: src/lang.c:1647 +#: src/lang.c:1654 #, fuzzy msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" @@ -5230,12 +5244,12 @@ msgstr "#Amakuru Imitwe Kuri Kuri Byose "Agaciro Byose Imitwe Itangiriro nka Cyangwa Urutonde Birenzeho ku Imyanya " "Bidakora iyi Ihitamo" -#: src/lang.c:1656 +#: src/lang.c:1663 #, fuzzy msgid "Do not display these header fields" msgstr "OYA Kugaragaza Umutwempangano Imyanya" -#: src/lang.c:1657 +#: src/lang.c:1664 #, fuzzy msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" @@ -5248,31 +5262,31 @@ msgid "# Same as 'news_headers_to_displa msgstr "#Nka i Urugero Bya ikoresha Byombi Amahitamo NIBA Imitwe A Na Hanyuma nka iyi " "Bidakora iyi Ihitamo" -#: src/lang.c:1667 +#: src/lang.c:1674 #, fuzzy msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "Kuri Gushoboza Byikoresha Bya" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1676 #, fuzzy msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "#Ubutumwa" -#: src/lang.c:1674 +#: src/lang.c:1681 #, fuzzy msgid "A regex used to decide which lines to show in col_quote." msgstr "A Kuri Imirongo Kuri Garagaza in" -#: src/lang.c:1675 +#: src/lang.c:1682 #, fuzzy msgid "Regex used to show quoted lines" msgstr "Kuri Garagaza Imirongo" -#: src/lang.c:1676 +#: src/lang.c:1683 #, fuzzy msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" @@ -5280,17 +5294,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Imirongo Ryari: Imirongo in iyi " "Ahatanditseho Gukoresha a in Mburabuzi" -#: src/lang.c:1682 +#: src/lang.c:1689 #, fuzzy msgid "A regex used to decide which lines to show in col_quote2." msgstr "A Kuri Imirongo Kuri Garagaza in" -#: src/lang.c:1683 +#: src/lang.c:1690 #, fuzzy msgid "Regex used to show twice quoted l." msgstr "Kuri Garagaza L" -#: src/lang.c:1684 +#: src/lang.c:1691 #, fuzzy msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" @@ -5298,17 +5312,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Imirongo Imirongo in iyi Ahatanditseho " "Gukoresha a in Mburabuzi" -#: src/lang.c:1690 +#: src/lang.c:1697 #, fuzzy msgid "A regex used to decide which lines to show in col_quote3." msgstr "A Kuri Imirongo Kuri Garagaza in" -#: src/lang.c:1691 +#: src/lang.c:1698 #, fuzzy msgid "Regex used to show >= 3 times q.l." msgstr "L." -#: src/lang.c:1692 +#: src/lang.c:1699 #, fuzzy msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" @@ -5316,17 +5330,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Imirongo 3. Times 3. Times Imirongo in iyi " "Ahatanditseho Gukoresha a in Mburabuzi" -#: src/lang.c:1699 +#: src/lang.c:1706 #, fuzzy msgid "A regex used to decide which words to show in col_markslashes." msgstr "A Kuri Amagambo Kuri Garagaza in" -#: src/lang.c:1700 +#: src/lang.c:1707 #, fuzzy msgid "Regex used to highlight /slashes/" msgstr "Kuri garagaza cyane" -#: src/lang.c:1701 +#: src/lang.c:1708 #, fuzzy msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" @@ -5334,17 +5348,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a " "in Mburabuzi" -#: src/lang.c:1707 +#: src/lang.c:1714 #, fuzzy msgid "A regex used to decide which words to show in col_markstars." msgstr "A Kuri Amagambo Kuri Garagaza in" -#: src/lang.c:1708 +#: src/lang.c:1715 #, fuzzy msgid "Regex used to highlight *stars*" msgstr "Kuri garagaza cyane Inyenyeri" -#: src/lang.c:1709 +#: src/lang.c:1716 #, fuzzy msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" @@ -5352,17 +5366,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a " "in Mburabuzi" -#: src/lang.c:1715 +#: src/lang.c:1722 #, fuzzy msgid "A regex used to decide which words to show in col_markstroke." msgstr "A Kuri Amagambo Kuri Garagaza in" -#: src/lang.c:1716 +#: src/lang.c:1723 #, fuzzy msgid "Regex used to highlight -strokes-" msgstr "Kuri garagaza cyane" -#: src/lang.c:1717 +#: src/lang.c:1724 #, fuzzy msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" @@ -5370,17 +5384,17 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a " "in Mburabuzi" -#: src/lang.c:1723 +#: src/lang.c:1730 #, fuzzy msgid "A regex used to decide which words to show in col_markdash." msgstr "A Kuri Amagambo Kuri Garagaza in" -#: src/lang.c:1724 +#: src/lang.c:1731 #, fuzzy msgid "Regex used to highlight _underline_" msgstr "Kuri garagaza cyane Gucaho umurongo" -#: src/lang.c:1725 +#: src/lang.c:1732 #, fuzzy msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" @@ -5388,50 +5402,78 @@ msgid "# A regular expression that tin w msgstr "#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a " "in Mburabuzi" -#: src/lang.c:1731 +#: src/lang.c:1738 #, fuzzy msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "A Kuri Gushaka Kuri Gukuraho... Nka Mutandukanya" -#: src/lang.c:1732 +#: src/lang.c:1739 #, fuzzy msgid "Regex with Subject prefixes" msgstr "Na:" -#: src/lang.c:1733 +#: src/lang.c:1740 #, fuzzy msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Gushaka Cyavanyweho Mbere i Umutwempangano" -#: src/lang.c:1738 +#: src/lang.c:1745 #, fuzzy msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "A Kuri Gushaka Imigereka Kuri Gukuraho... Nka Mutandukanya" -#: src/lang.c:1739 +#: src/lang.c:1746 #, fuzzy msgid "Regex with Subject suffixes" msgstr "Na: Imigereka" -#: src/lang.c:1740 +#: src/lang.c:1747 #, fuzzy msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Gushaka Cyavanyweho Ryari: Cyangwa" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +#, fuzzy +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Gushaka Cyavanyweho Mbere i Umutwempangano" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +#, fuzzy +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "#A Ibisanzwe imvugo Gukoresha Kuri Gushaka Cyavanyweho Mbere i Umutwempangano" + +#: src/lang.c:1766 #, fuzzy msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "Izina: Na Amahitamo kugirango external By'imbere kugirango in" -#: src/lang.c:1746 +#: src/lang.c:1767 #, fuzzy msgid "MIME binary content viewer" msgstr "Nyabibiri Ibikubiyemo" -#: src/lang.c:1747 +#: src/lang.c:1768 #, fuzzy msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" @@ -5440,148 +5482,148 @@ msgid "# If --internal automatically use msgstr "#By'imbere ku buryo bwikora Gukoresha i in kugirango Bya external Porogaramu " "Cyangwa kugirango Oya Byikoresha" -#: src/lang.c:1754 +#: src/lang.c:1775 #, fuzzy msgid "Confirm before starting non-text viewing program" msgstr "Mbere Umwandiko Porogaramu" -#: src/lang.c:1755 +#: src/lang.c:1776 #, fuzzy msgid "Ask before using MIME viewer" msgstr "Mbere ikoresha" -#: src/lang.c:1756 +#: src/lang.c:1777 #, fuzzy msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "#Mbere ikoresha Kuri Kugaragaza iyi NIBA ni Gushyiraho Kuri" -#: src/lang.c:1761 +#: src/lang.c:1782 #, fuzzy msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Kuri Ikimenyetso Amatsinda Gusoma Ryari:" -#: src/lang.c:1762 +#: src/lang.c:1783 #, fuzzy msgid "Catchup read groups when quitting" msgstr "Gusoma Amatsinda Ryari:" -#: src/lang.c:1763 +#: src/lang.c:1784 #, fuzzy msgid "# If ON ask user if read groups should all be marked read\n" msgstr "#Ukoresha: NIBA Gusoma Amatsinda Byose cy/ byagarajwe" -#: src/lang.c:1768 +#: src/lang.c:1789 #, fuzzy msgid "Catchup group using left key" msgstr "Itsinda ikoresha Ibumoso: Urufunguzo" -#: src/lang.c:1769 +#: src/lang.c:1790 #, fuzzy msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "#Itsinda Urudodo Ryari: Na: i Ibumoso: Akambi Urufunguzo" -#: src/lang.c:1774 +#: src/lang.c:1795 #, fuzzy msgid "Catchup thread by using left key" msgstr "Urudodo ku ikoresha Ibumoso: Urufunguzo" -#: src/lang.c:1780 +#: src/lang.c:1801 #, fuzzy msgid "Which actions require confirmation" msgstr "Iyemeza" -#: src/lang.c:1781 +#: src/lang.c:1802 #, fuzzy msgid "# What should we ask confirmation for.\n" msgstr "#Twebwe Iyemeza kugirango" -#: src/lang.c:1786 +#: src/lang.c:1807 #, fuzzy msgid "'Mark article read' ignores tags" msgstr "'Ingingo" -#: src/lang.c:1787 +#: src/lang.c:1808 #, fuzzy msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "#i Ingingo Umumaro i KIGEZWEHO Ingingo" -#: src/lang.c:1791 +#: src/lang.c:1812 #, fuzzy msgid "Program to run to open URL's, sets, cancels." msgstr "Kuri Gukoresha Kuri Gufungura" -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "" -#: src/lang.c:1793 +#: src/lang.c:1814 #, fuzzy msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "#Porogaramu Kuri Gufungura" -#: src/lang.c:1798 +#: src/lang.c:1819 #, fuzzy msgid "Use mouse in xterm" msgstr "Imbeba in" -#: src/lang.c:1799 +#: src/lang.c:1820 #, fuzzy -msgid "# If ON enable mouse key support on xterm terminals\n" +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "#Gushoboza Imbeba Urufunguzo Gushigikira ku" -#: src/lang.c:1805 +#: src/lang.c:1826 #, fuzzy msgid "Use scroll keys on keypad" msgstr "Utubuto ku" -#: src/lang.c:1806 +#: src/lang.c:1827 #, fuzzy msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "#Gushoboza Utubuto ku Gushigikira" -#: src/lang.c:1811 +#: src/lang.c:1832 #, fuzzy msgid "Enter maximum number of article to get. sets." msgstr "Kinini Umubare Bya Ingingo Kuri Kubona" -#: src/lang.c:1812 +#: src/lang.c:1833 #, fuzzy msgid "Number of articles to get" msgstr "Bya Kuri Kubona" -#: src/lang.c:1813 +#: src/lang.c:1834 #, fuzzy msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "#Bya Kuri Kubona 0 Oya NIBA Kinini Bya Gusoma Kuri Gusoma Mbere Itangira " "Bidasomye" -#: src/lang.c:1818 +#: src/lang.c:1839 #, fuzzy msgid "Enter number of days article is considered recent. sets." msgstr "Umubare Bya Iminsi Ingingo ni" -#: src/lang.c:1819 +#: src/lang.c:1840 #, fuzzy msgid "Article recentness time limit" msgstr "Igihe" -#: src/lang.c:1820 +#: src/lang.c:1841 #, fuzzy msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "#Bya Iminsi in Ingingo ni 0" -#: src/lang.c:1824 +#: src/lang.c:1845 #, fuzzy msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "kugirango Bisanzwe kugirango Ibisanzwe imvugo" -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1847 #, fuzzy msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" @@ -5589,345 +5631,345 @@ msgid "# Wildcard matching\n" "# 1 = regex\n" msgstr "#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1." -#: src/lang.c:1833 +#: src/lang.c:1854 #, fuzzy msgid "Enter minimal score before an article is marked killed. sets." msgstr "Mbere Ingingo ni cy/ byagarajwe" -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "" -#: src/lang.c:1835 +#: src/lang.c:1856 #, fuzzy msgid "# Score limit before an article is marked killed\n" msgstr "#Mbere Ingingo ni cy/ byagarajwe" -#: src/lang.c:1839 +#: src/lang.c:1860 #, fuzzy msgid "Enter default score to kill articles. sets." msgstr "Mburabuzi Kuri" -#: src/lang.c:1840 +#: src/lang.c:1861 #, fuzzy msgid "Default score to kill articles" msgstr "Kuri" -#: src/lang.c:1841 +#: src/lang.c:1862 #, fuzzy msgid "# Default score to kill articles\n" msgstr "#Kuri" -#: src/lang.c:1845 +#: src/lang.c:1866 #, fuzzy msgid "Enter minimal score before an article is marked hot. sets." msgstr "Mbere Ingingo ni cy/ byagarajwe" -#: src/lang.c:1846 +#: src/lang.c:1867 #, fuzzy msgid "Score limit (select)" msgstr "Guhitamo" -#: src/lang.c:1847 +#: src/lang.c:1868 #, fuzzy msgid "# Score limit before an article is marked hot\n" msgstr "#Mbere Ingingo ni cy/ byagarajwe" -#: src/lang.c:1851 +#: src/lang.c:1872 #, fuzzy msgid "Enter default score to select articles. sets." msgstr "Mburabuzi Kuri Guhitamo" -#: src/lang.c:1852 +#: src/lang.c:1873 #, fuzzy msgid "Default score to select articles" msgstr "Kuri Guhitamo" -#: src/lang.c:1853 +#: src/lang.c:1874 #, fuzzy msgid "# Default score to select articles\n" msgstr "#Kuri Guhitamo" -#: src/lang.c:1859 +#: src/lang.c:1880 #, fuzzy msgid "Use slrnface to show ''X-Face:''s" msgstr "Kuri Garagaza S" -#: src/lang.c:1860 +#: src/lang.c:1881 #, fuzzy msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "#ikoresha 1. Kuri i Umutwempangano Ryari: in" -#: src/lang.c:1868 +#: src/lang.c:1889 #, fuzzy msgid "Use ANSI color" msgstr "Ibara" -#: src/lang.c:1869 +#: src/lang.c:1890 #, fuzzy msgid "# If ON using ANSI-color\n" msgstr "#ikoresha" -#: src/lang.c:1874 +#: src/lang.c:1895 #, fuzzy msgid "Standard foreground color" msgstr "Ibara" -#: src/lang.c:1875 +#: src/lang.c:1896 #, fuzzy msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "#1. Mburabuzi Ibara" -#: src/lang.c:1881 +#: src/lang.c:1902 #, fuzzy msgid "Standard background color" msgstr "Mbuganyuma Ibara" -#: src/lang.c:1882 +#: src/lang.c:1903 #, fuzzy msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "#Mbuganyuma 1. Mburabuzi Ibara" -#: src/lang.c:1888 +#: src/lang.c:1909 #, fuzzy msgid "Color for inverse text (background)" msgstr "kugirango Umwandiko Mbuganyuma" -#: src/lang.c:1889 +#: src/lang.c:1910 #, fuzzy msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "#Bya Mbuganyuma kugirango 4. Ubururu" -#: src/lang.c:1895 +#: src/lang.c:1916 #, fuzzy msgid "Color for inverse text (foreground)" msgstr "kugirango Umwandiko" -#: src/lang.c:1896 +#: src/lang.c:1917 #, fuzzy msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "#Bya kugirango 7 Umweru" -#: src/lang.c:1902 +#: src/lang.c:1923 #, fuzzy msgid "Color of text lines" msgstr "Bya Umwandiko Imirongo" -#: src/lang.c:1903 +#: src/lang.c:1924 #, fuzzy msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "#Bya Umwandiko 1. Mburabuzi Ibara" -#: src/lang.c:1909 +#: src/lang.c:1930 #, fuzzy msgid "Color of mini help menu" msgstr "Bya Ifashayobora Ibikubiyemo" -#: src/lang.c:1910 +#: src/lang.c:1931 #, fuzzy msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "#Bya Ifashayobora 3. Igihogo" -#: src/lang.c:1916 +#: src/lang.c:1937 #, fuzzy msgid "Color of help text" msgstr "Bya Ifashayobora Umwandiko" -#: src/lang.c:1917 +#: src/lang.c:1938 #, fuzzy msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "#Bya Ifashayobora 1. Mburabuzi Ibara" -#: src/lang.c:1923 +#: src/lang.c:1944 #, fuzzy msgid "Color of status messages" msgstr "Bya Imimerere Ubutumwa" -#: src/lang.c:1924 +#: src/lang.c:1945 #, fuzzy msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "#Bya Ubutumwa in Iheruka 6 Ubururu bukeye" -#: src/lang.c:1930 +#: src/lang.c:1951 #, fuzzy msgid "Color of quoted lines" msgstr "Bya Imirongo" -#: src/lang.c:1931 +#: src/lang.c:1952 #, fuzzy msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "#Bya Gushyiraho akugarizo 2. Icyatsi" -#: src/lang.c:1937 +#: src/lang.c:1958 #, fuzzy msgid "Color of twice quoted line" msgstr "Bya Umurongo" -#: src/lang.c:1938 +#: src/lang.c:1959 #, fuzzy msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "#Bya 3. Igihogo" -#: src/lang.c:1944 +#: src/lang.c:1965 #, fuzzy msgid "Color of =>3 times quoted line" msgstr "Bya 3. Times Umurongo" -#: src/lang.c:1945 +#: src/lang.c:1966 #, fuzzy msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "#Bya 3. Times 4. Ubururu" -#: src/lang.c:1951 +#: src/lang.c:1972 #, fuzzy msgid "Color of article header lines" msgstr "Bya Ingingo Umutwempangano Imirongo" -#: src/lang.c:1952 +#: src/lang.c:1973 #, fuzzy msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "#Bya Umutwempangano 2. Icyatsi" -#: src/lang.c:1958 +#: src/lang.c:1979 #, fuzzy msgid "Color of actual news header fields" msgstr "Bya Amakuru Umutwempangano Imyanya" -#: src/lang.c:1959 +#: src/lang.c:1980 #, fuzzy msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "#Bya Amakuru Umutwempangano 9 kimurika Umutuku" -#: src/lang.c:1965 +#: src/lang.c:1986 #, fuzzy msgid "Color of article subject lines" msgstr "Bya Ingingo Ikivugwaho Imirongo" -#: src/lang.c:1966 +#: src/lang.c:1987 #, fuzzy msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "#Bya Ingingo 6 Ubururu bukeye" -#: src/lang.c:1972 +#: src/lang.c:1993 #, fuzzy msgid "Color of response counter" msgstr "Bya" -#: src/lang.c:1973 +#: src/lang.c:1994 #, fuzzy msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "#Bya 2. Icyatsi" -#: src/lang.c:1979 +#: src/lang.c:2000 #, fuzzy msgid "Color of sender (From:)" msgstr "Bya Uwohereza" -#: src/lang.c:1980 +#: src/lang.c:2001 #, fuzzy msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "#Bya Uwohereza 2. Icyatsi" -#: src/lang.c:1986 +#: src/lang.c:2007 #, fuzzy msgid "Color of help/mail sign" msgstr "Bya Ifashayobora Ubutumwa IKIMENYETSO" -#: src/lang.c:1987 +#: src/lang.c:2008 #, fuzzy msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "#Bya 4. Ubururu" -#: src/lang.c:1993 +#: src/lang.c:2014 #, fuzzy msgid "Color of signatures" msgstr "Bya" -#: src/lang.c:1994 +#: src/lang.c:2015 #, fuzzy msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "#Bya 4. Ubururu" -#: src/lang.c:2000 +#: src/lang.c:2021 #, fuzzy msgid "Color of highlighted URLs" msgstr "Bya" -#: src/lang.c:2001 +#: src/lang.c:2022 #, fuzzy msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "#Bya 1. Mburabuzi Ibara" -#: src/lang.c:2007 +#: src/lang.c:2028 #, fuzzy msgid "Color of highlighting with *stars*" msgstr "Bya Igaragaza cyane Na: Inyenyeri" -#: src/lang.c:2008 +#: src/lang.c:2029 #, fuzzy msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "#Bya ijambo Igaragaza cyane Na: Inyenyeri Umuhondo" -#: src/lang.c:2014 +#: src/lang.c:2035 #, fuzzy msgid "Color of highlighting with _dash_" msgstr "Bya Igaragaza cyane Na: AKANYEREZO" -#: src/lang.c:2015 +#: src/lang.c:2036 #, fuzzy msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "#Bya ijambo Igaragaza cyane Na: kimurika" -#: src/lang.c:2021 +#: src/lang.c:2042 #, fuzzy msgid "Color of highlighting with /slash/" msgstr "Bya Igaragaza cyane Na: AKARONGOKABERAMYE" -#: src/lang.c:2022 +#: src/lang.c:2043 #, fuzzy msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "#Bya ijambo Igaragaza cyane Na: AKARONGOKABERAMYE 14 kimurika Ubururu bukeye" -#: src/lang.c:2028 +#: src/lang.c:2049 #, fuzzy msgid "Color of highlighting with -stroke-" msgstr "Bya Igaragaza cyane Na: Akarongo" -#: src/lang.c:2029 +#: src/lang.c:2050 #, fuzzy msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "#Bya ijambo Igaragaza cyane Na: Akarongo 12 kimurika Ubururu" -#: src/lang.c:2036 +#: src/lang.c:2057 #, fuzzy msgid "Attr. of highlighting with *stars*" msgstr "Bya Igaragaza cyane Na: Inyenyeri" -#: src/lang.c:2037 +#: src/lang.c:2058 #, fuzzy msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" @@ -5944,65 +5986,65 @@ msgid "# Attributes of word highlighting msgstr "#Bya ijambo Igaragaza cyane ku Uduciro 0 1. 2. 3. 4. 5 6 Bya ijambo Igaragaza " "cyane Na: Inyenyeri 6 UTSINDAGIYE" -#: src/lang.c:2052 +#: src/lang.c:2073 #, fuzzy msgid "Attr. of highlighting with _dash_" msgstr "Bya Igaragaza cyane Na: AKANYEREZO" -#: src/lang.c:2053 +#: src/lang.c:2074 #, fuzzy msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "#Bya ijambo Igaragaza cyane Na: 2. Igaragaza cyane" -#: src/lang.c:2059 +#: src/lang.c:2080 #, fuzzy msgid "Attr. of highlighting with /slash/" msgstr "Bya Igaragaza cyane Na: AKARONGOKABERAMYE" -#: src/lang.c:2060 +#: src/lang.c:2081 #, fuzzy msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "#Bya ijambo Igaragaza cyane Na: AKARONGOKABERAMYE 5 Bibonerana" -#: src/lang.c:2066 +#: src/lang.c:2087 #, fuzzy msgid "Attr. of highlighting with -stroke-" msgstr "Bya Igaragaza cyane Na: Akarongo" -#: src/lang.c:2067 +#: src/lang.c:2088 #, fuzzy msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "#Bya ijambo Igaragaza cyane Na: Akarongo 3. Ihindurakerekezo Videwo..." -#: src/lang.c:2073 +#: src/lang.c:2094 #, fuzzy msgid "URL highlighting in message body" msgstr "Igaragaza cyane in Ubutumwa Umubiri" -#: src/lang.c:2074 +#: src/lang.c:2095 #, fuzzy msgid "# Enable URL highlighting?\n" msgstr "#Igaragaza cyane" -#: src/lang.c:2079 +#: src/lang.c:2100 #, fuzzy msgid "Word highlighting in message body" msgstr "Igaragaza cyane in Ubutumwa Umubiri" -#: src/lang.c:2080 +#: src/lang.c:2101 #, fuzzy msgid "# Enable word highlighting?\n" msgstr "#ijambo Igaragaza cyane" -#: src/lang.c:2085 +#: src/lang.c:2106 #, fuzzy msgid "What to display instead of mark" msgstr "Kuri Kugaragaza Bya Ikimenyetso" -#: src/lang.c:2086 +#: src/lang.c:2107 #, fuzzy msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" @@ -6014,67 +6056,67 @@ msgstr "#i Nyobora Na Inyenyeri Na Utuny "Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. Yego Kugaragaza 2. Gucapa a " "Umwanya" -#: src/lang.c:2095 +#: src/lang.c:2116 #, fuzzy msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Inkingi Umubare Kuri Gufunika Ingingo Imirongo Kuri in i Peja" -#: src/lang.c:2096 +#: src/lang.c:2117 #, fuzzy msgid "Page line wrap column" msgstr "Umurongo Gufunika Inkingi" -#: src/lang.c:2097 +#: src/lang.c:2118 #, fuzzy msgid "# Wrap article lines at column\n" msgstr "#Ingingo Imirongo ku" -#: src/lang.c:2102 +#: src/lang.c:2123 #, fuzzy msgid "Wrap around threads on next unread" msgstr "ku Komeza>> Bidasomye" -#: src/lang.c:2103 +#: src/lang.c:2124 #, fuzzy msgid "# If ON wrap around threads on searching next unread article\n" msgstr "#Gufunika ku Ishakisha Komeza>> Bidasomye" -#: src/lang.c:2107 +#: src/lang.c:2128 #, fuzzy msgid "Enter default mail address (and fullname). sets." msgstr "Mburabuzi Ubutumwa Aderesi Na" -#: src/lang.c:2108 +#: src/lang.c:2129 #, fuzzy msgid "Mail address (and fullname)" msgstr "Aderesi Na" -#: src/lang.c:2109 +#: src/lang.c:2130 #, fuzzy msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "#Ubutumwa Aderesi Na NIBA OYA Izina ry'ukoresha Ubuturo" -#: src/lang.c:2114 +#: src/lang.c:2135 #, fuzzy msgid "Show empty Followup-To in editor" msgstr "ubusa in Muhinduzi" -#: src/lang.c:2115 +#: src/lang.c:2136 #, fuzzy msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "#Garagaza ubusa Umutwempangano Ryari:" -#: src/lang.c:2119 +#: src/lang.c:2140 #, fuzzy msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Inzira Komandi: Ntacyo Kuri Kurema Mburabuzi Isinya" -#: src/lang.c:2120 +#: src/lang.c:2141 #, fuzzy msgid "Create signature from path/command" msgstr "Isinya Bivuye Inzira Komandi:" -#: src/lang.c:2121 +#: src/lang.c:2142 #, fuzzy msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" @@ -6084,58 +6126,58 @@ msgid "# Signature path (random sigs)/fi msgstr "#Inzira IDOSIYE Kuri Ryari: IDOSIYE IDOSIYE Nka Komandi: external Komandi: " "Kuri a Ntacyo Kongeraho... a" -#: src/lang.c:2128 +#: src/lang.c:2149 #, fuzzy msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Isinya Na: ku Umurongo" -#: src/lang.c:2129 +#: src/lang.c:2150 #, fuzzy msgid "Prepend signature with \"-- \"" msgstr "Isinya Na:" -#: src/lang.c:2130 +#: src/lang.c:2151 #, fuzzy msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "#i Isinya Na: Utunyerezo N" -#: src/lang.c:2134 +#: src/lang.c:2155 #, fuzzy msgid "Add signature when reposting articles. toggles & sets." msgstr "Isinya Ryari:" -#: src/lang.c:2135 +#: src/lang.c:2156 #, fuzzy msgid "Add signature when reposting" msgstr "Isinya Ryari:" -#: src/lang.c:2136 +#: src/lang.c:2157 #, fuzzy msgid "# If ON add signature to reposted articles\n" msgstr "#Kongeramo Isinya Kuri" -#: src/lang.c:2140 +#: src/lang.c:2161 #, fuzzy, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "Gusubiramo ibyavuzwe Cyangwa kugirango Izibanza" -#: src/lang.c:2141 +#: src/lang.c:2162 #, fuzzy msgid "Characters used as quote-marks" msgstr "Nka Gushyiraho akugarizo" -#: src/lang.c:2142 +#: src/lang.c:2163 #, fuzzy, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "#in Kuri Na ni ku ku Izibanza" -#: src/lang.c:2148 +#: src/lang.c:2169 #, fuzzy msgid "Quoting behavior" msgstr "imyitwarire" -#: src/lang.c:2149 +#: src/lang.c:2170 #, fuzzy msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" @@ -6151,57 +6193,57 @@ msgstr "#Ryari: Hejuru Cyangwa Uduciro i "Gushyiraho akugarizo 4. ubusa 5 Gushyiraho akugarizo ubusa 6 Gushyiraho " "akugarizo ubusa 7 Gushyiraho akugarizo Gushyiraho akugarizo ubusa" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2163 +#: src/lang.c:2184 #, fuzzy msgid "Quote line when following up" msgstr "Umurongo Ryari: Hejuru" -#: src/lang.c:2164 +#: src/lang.c:2185 #, fuzzy, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" "# %%N Full Name %%C First Name %%I Initials\n" msgstr "#Bya Gushyiraho akugarizo Umurongo Ryari: Hejuru" -#: src/lang.c:2171 +#: src/lang.c:2192 #, fuzzy msgid "Quote line when cross-posting" msgstr "Umurongo Ryari: Kwambukiranya" -#: src/lang.c:2177 +#: src/lang.c:2198 #, fuzzy msgid "Quote line when mailing" msgstr "Umurongo Ryari:" -#: src/lang.c:2182 +#: src/lang.c:2203 #, fuzzy msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Gushyiramo Umutwempangano" -#: src/lang.c:2183 +#: src/lang.c:2204 #, fuzzy msgid "Insert 'User-Agent:'-header" msgstr "Umutwempangano" -#: src/lang.c:2184 +#: src/lang.c:2205 #, fuzzy msgid "# If ON include advertising User-Agent: header\n" msgstr "#Gushyiramo" -#: src/lang.c:2189 +#: src/lang.c:2210 #, fuzzy msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "g." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2212 #, fuzzy msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" @@ -6218,31 +6260,31 @@ msgstr "#Project- Id- Version: basctl\n" "X- Generator: KBabel 1. 0\n" "." -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "" -#: src/lang.c:2202 +#: src/lang.c:2223 #, fuzzy msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "#kugirango Umutwempangano in" -#: src/lang.c:2208 +#: src/lang.c:2229 #, fuzzy msgid "Mailbox format" msgstr "Imiterere" -#: src/lang.c:2209 +#: src/lang.c:2230 #, fuzzy msgid "# Format of the mailbox.\n" msgstr "#Bya i" -#: src/lang.c:2214 +#: src/lang.c:2235 #, fuzzy msgid "MIME encoding in news messages" msgstr "Imisobekere: in Amakuru Ubutumwa" -#: src/lang.c:2215 +#: src/lang.c:2236 #, fuzzy msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" @@ -6252,17 +6294,17 @@ msgid "# MIME encoding (8bit, base64, qu msgstr "#Imisobekere: Gicapika Bya i kugirango Na NIBA ni kugirango Inyuguti Na: " "Gitoya Imigabane Bya ni Birenzeho kugirango Na: a Bya Inyuguti" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 #, fuzzy msgid "Don't change unless you know what you are doing. cancels." msgstr "Guhindura>>" -#: src/lang.c:2224 +#: src/lang.c:2245 #, fuzzy msgid "Use 8bit characters in news headers" msgstr "Inyuguti in Amakuru Imitwe" -#: src/lang.c:2225 +#: src/lang.c:2246 #, fuzzy msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -6271,32 +6313,32 @@ msgid "# If ON, 8bit characters in news msgstr "#Inyuguti in Amakuru Imitwe Mburabuzi ni Inyuguti ku Mburabuzi in " "Umutwempangano Bya i Agaciro Bya ni Nka" -#: src/lang.c:2232 +#: src/lang.c:2253 #, fuzzy msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Kureba Iposita Idosiye" -#: src/lang.c:2233 +#: src/lang.c:2254 #, fuzzy msgid "View post-processed files" msgstr "Iposita Idosiye" -#: src/lang.c:2234 +#: src/lang.c:2255 #, fuzzy msgid "# If set, post processed files will be opened in a viewer\n" msgstr "#Gushyiraho Iposita Idosiye in a" -#: src/lang.c:2239 +#: src/lang.c:2260 #, fuzzy msgid "MIME encoding in mail messages" msgstr "Imisobekere: in Ubutumwa Ubutumwa" -#: src/lang.c:2245 +#: src/lang.c:2266 #, fuzzy msgid "Use 8bit characters in mail headers" msgstr "Inyuguti in Ubutumwa Imitwe" -#: src/lang.c:2246 +#: src/lang.c:2267 #, fuzzy msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -6308,27 +6350,27 @@ msgid "# If ON, 8bit characters in mail msgstr "#Inyuguti in Ubutumwa Imitwe Mburabuzi ni Inyuguti ku Mburabuzi in Imitwe Bya " "i Agaciro Bya iyi ni Nka Inyuguti in Ubutumwa Imitwe" -#: src/lang.c:2256 +#: src/lang.c:2277 #, fuzzy msgid "Strip blanks from ends of lines" msgstr "Bivuye Bya Imirongo" -#: src/lang.c:2257 +#: src/lang.c:2278 #, fuzzy msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "#Bivuye Bya Imirongo kugirango Kugaragaza ku Buhoro" -#: src/lang.c:2262 +#: src/lang.c:2283 #, fuzzy msgid "If ON, use transliteration. toggles & sets." msgstr "Gukoresha" -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "" -#: src/lang.c:2264 +#: src/lang.c:2285 #, fuzzy msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" @@ -6336,166 +6378,166 @@ msgid "# If ON, use //TRANSLIT extension msgstr "#Gukoresha Umugereka Ryari: a Inyuguti in i in i Intego Inyuguti Gushyiraho " "Gihinguranya Cyangwa Inyuguti" -#: src/lang.c:2271 +#: src/lang.c:2292 #, fuzzy msgid "Send you a carbon copy automatically. toggles & sets." msgstr "a Gukoporora ku buryo bwikora" -#: src/lang.c:2272 +#: src/lang.c:2293 #, fuzzy msgid "Send you a cc automatically" msgstr "a KopiKubandi ku buryo bwikora" -#: src/lang.c:2273 +#: src/lang.c:2294 #, fuzzy msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "#ku buryo bwikora Gushyira Izina: in i Umwanya Ryari:" -#: src/lang.c:2277 +#: src/lang.c:2298 #, fuzzy msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "a Gukoporora ku buryo bwikora" -#: src/lang.c:2278 +#: src/lang.c:2299 #, fuzzy msgid "Send you a blind cc automatically" msgstr "a KopiKubandi ku buryo bwikora" -#: src/lang.c:2279 +#: src/lang.c:2300 #, fuzzy msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "#ku buryo bwikora Gushyira Izina: in i Umwanya Ryari:" -#: src/lang.c:2283 +#: src/lang.c:2304 #, fuzzy msgid "Enter address elements about which you want to be warned. sets." msgstr "Aderesi Ibintu Ibyerekeye Kuri" -#: src/lang.c:2284 +#: src/lang.c:2305 #, fuzzy msgid "Spamtrap warning address parts" msgstr "Iburira Aderesi" -#: src/lang.c:2285 +#: src/lang.c:2306 #, fuzzy msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "#A Akitso Urutonde Bya Aderesi Kuri Ibyerekeye Ryari: Kuri Subiza ku imeli" -#: src/lang.c:2290 +#: src/lang.c:2311 #, fuzzy msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Mburabuzi Umubare Bya Iminsi a Muyunguruzi... Icyinjijwe Byemewe" -#: src/lang.c:2291 +#: src/lang.c:2312 #, fuzzy msgid "No. of days a filter entry is valid" msgstr "Bya Iminsi a Muyunguruzi... Icyinjijwe ni Byemewe" -#: src/lang.c:2292 +#: src/lang.c:2313 #, fuzzy msgid "# Number of days a short term filter will be active\n" msgstr "#Bya Iminsi a Ijambo Muyunguruzi..." -#: src/lang.c:2296 +#: src/lang.c:2317 #, fuzzy msgid "Add posted articles to filter. toggles & sets." msgstr "Kuri Muyunguruzi..." -#: src/lang.c:2297 +#: src/lang.c:2318 #, fuzzy msgid "Add posted articles to filter" msgstr "Kuri Muyunguruzi..." -#: src/lang.c:2298 +#: src/lang.c:2319 #, fuzzy msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "#Kongeramo Gutangira a Gishya Urudodo Kuri Muyunguruzi... Igaragaza cyane" -#: src/lang.c:2302 +#: src/lang.c:2323 #, fuzzy msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "bushyinguro Kuri in Imiterere" -#: src/lang.c:2303 +#: src/lang.c:2324 #, fuzzy msgid "Mail directory" msgstr "bushyinguro" -#: src/lang.c:2304 +#: src/lang.c:2325 #, fuzzy msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "#(-M bushyinguro in" -#: src/lang.c:2309 +#: src/lang.c:2330 #, fuzzy msgid "Save articles in batch mode (-S)" msgstr "Kubika in Ubwoko" -#: src/lang.c:2310 +#: src/lang.c:2331 #, fuzzy msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "#in Ubwoko Ryari: Kubika Cyangwa Ubutumwa ni ku i Komandi:" -#: src/lang.c:2315 +#: src/lang.c:2336 #, fuzzy msgid "The directory where you want articles/threads saved." msgstr "bushyinguro" -#: src/lang.c:2316 +#: src/lang.c:2337 #, fuzzy msgid "Directory to save arts/threads in" msgstr "Kuri Kubika in" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2321 +#: src/lang.c:2342 #, fuzzy msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Kubika Ingingo Urudodo ku Izina: Umutwempangano" -#: src/lang.c:2322 +#: src/lang.c:2343 #, fuzzy msgid "Use Archive-name: header for save" msgstr "Izina: Umutwempangano kugirango Kubika" -#: src/lang.c:2323 +#: src/lang.c:2344 #, fuzzy msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "#Na: Izina: in Ubutumwa Umutwempangano ku buryo bwikora Na: i Izina: Oya" -#: src/lang.c:2328 +#: src/lang.c:2349 #, fuzzy msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Nka Gusoma" -#: src/lang.c:2329 +#: src/lang.c:2350 #, fuzzy msgid "Mark saved articles/threads as read" msgstr "Nka Gusoma" -#: src/lang.c:2330 +#: src/lang.c:2351 #, fuzzy msgid "# If ON mark articles that are saved as read\n" msgstr "#Ikimenyetso Nka" -#: src/lang.c:2334 +#: src/lang.c:2355 #, fuzzy msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Iposita Inonosora Imigereka kugirango" -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "" -#: src/lang.c:2336 +#: src/lang.c:2357 #, fuzzy msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" @@ -6505,116 +6547,116 @@ msgid "# Perform post processing (saving msgstr "#Iposita Inonosora Mu kubika Nyabibiri Imigereka Bivuye Uduciro i Mburabuzi " "ni cy/ byagarajwe Na: 0 1. Igikonoshwa Ubushyinguro 2." -#: src/lang.c:2345 +#: src/lang.c:2366 #, fuzzy msgid "Process only unread articles" msgstr "Bidasomye" -#: src/lang.c:2346 +#: src/lang.c:2367 #, fuzzy msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "#Kubika Gucapa Ubutumwa Bidasomye" -#: src/lang.c:2351 +#: src/lang.c:2372 #, fuzzy msgid "Print all or just part of header. toggles & sets." msgstr "Byose Cyangwa Bya Umutwempangano" -#: src/lang.c:2352 +#: src/lang.c:2373 #, fuzzy msgid "Print all headers when printing" msgstr "Byose Imitwe Ryari: Icapa..." -#: src/lang.c:2353 +#: src/lang.c:2374 #, fuzzy msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "#Gucapa Byose Bya Ingingo Umutwempangano i By'ingirakamaro" -#: src/lang.c:2357 +#: src/lang.c:2378 #, fuzzy msgid "The printer program with options that is to be used to print articles/threads." msgstr "Mucapyi Porogaramu Na: Amahitamo ni Kuri Kuri Gucapa" -#: src/lang.c:2358 +#: src/lang.c:2379 #, fuzzy msgid "Printer program with options" msgstr "Porogaramu Na: Amahitamo" -#: src/lang.c:2359 +#: src/lang.c:2380 #, fuzzy msgid "# Print program with parameters used to print articles/threads\n" msgstr "#Porogaramu Na: Ibigenga Kuri Gucapa" -#: src/lang.c:2365 +#: src/lang.c:2386 #, fuzzy msgid "Force redraw after certain commands" msgstr "Kongera Gushushanya Nyuma Amabwiriza" -#: src/lang.c:2366 +#: src/lang.c:2387 #, fuzzy msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "#a Mugaragaza Kongera Gushushanya Buri gihe Byakozwe Nyuma external" -#: src/lang.c:2370 +#: src/lang.c:2391 #, fuzzy msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Gutangira Muhinduzi Na: Umurongo Nta- boneza" -#: src/lang.c:2371 +#: src/lang.c:2392 #, fuzzy msgid "Start editor with line offset" msgstr "Gutangira Muhinduzi Na: Umurongo Nta- boneza" -#: src/lang.c:2372 +#: src/lang.c:2393 #, fuzzy msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "#Muhinduzi Na: indanga Nta- boneza i i indanga ku i Itangira" -#: src/lang.c:2377 +#: src/lang.c:2398 #, fuzzy msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "kugirango Muhinduzi kugirango Izina ry'idosiye: kugirango Umurongo Umubare " "Kuri Gushyiraho" -#: src/lang.c:2378 +#: src/lang.c:2399 #, fuzzy msgid "Invocation of your editor" msgstr "Bya Muhinduzi" -#: src/lang.c:2379 +#: src/lang.c:2400 #, fuzzy, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "#Bya Muhinduzi Umurongo" -#: src/lang.c:2384 +#: src/lang.c:2405 #, fuzzy msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "Izina: Na Amahitamo kugirango external By'imbere kugirango By'imbere" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "" -#: src/lang.c:2386 +#: src/lang.c:2407 #, fuzzy msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "#By'imbere Gukoresha i in kugirango Biturutse Gukoresha external" -#: src/lang.c:2390 +#: src/lang.c:2411 #, fuzzy msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "kugirango Uwanditse kugirango Ikivugwaho kugirango Kuri kugirango Izina " "ry'idosiye: Kuri Gushyiraho" -#: src/lang.c:2391 +#: src/lang.c:2412 #, fuzzy msgid "Invocation of your mail command" msgstr "Bya Ubutumwa Komandi:" -#: src/lang.c:2392 +#: src/lang.c:2413 #, fuzzy, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6622,12 +6664,12 @@ msgid "# Format of mailer line including "# ie. elm interactive : elm -i %%F -s \"%%S\" \"%%T\"\n" msgstr "#Bya Uwanditse Umurongo Kuri Gukoresha Nka Uwanditse S Biganira i S" -#: src/lang.c:2400 +#: src/lang.c:2421 #, fuzzy msgid "Use interactive mail reader" msgstr "Biganira Ubutumwa" -#: src/lang.c:2401 +#: src/lang.c:2422 #, fuzzy msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" @@ -6637,68 +6679,68 @@ msgid "# Interactive mailreader\n" msgstr "#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 Oya Biganira 1. Gukoresha " "Biganira Na: Imitwe in 2. Gukoresha Biganira Imitwe in" -#: src/lang.c:2410 +#: src/lang.c:2431 #, fuzzy msgid "Remove ~/.article after posting" msgstr "Ingingo Nyuma" -#: src/lang.c:2411 +#: src/lang.c:2432 #, fuzzy msgid "# If ON remove ~/.article after posting.\n" msgstr "#Gukuraho... Ingingo Nyuma" -#: src/lang.c:2415 +#: src/lang.c:2436 #, fuzzy msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "kugirango Byose Oya Izina ry'idosiye: OYA Kubika" -#: src/lang.c:2416 +#: src/lang.c:2437 #, fuzzy msgid "Filename for posted articles" msgstr "kugirango" -#: src/lang.c:2417 +#: src/lang.c:2438 #, fuzzy msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "#Kuri Gumana: Byose Mburabuzi Oya Izina ry'idosiye: ni Gushyiraho Hanyuma OYA" -#: src/lang.c:2422 +#: src/lang.c:2443 #, fuzzy msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Byose Byanze in" -#: src/lang.c:2423 +#: src/lang.c:2444 #, fuzzy msgid "Keep failed arts in ~/dead.articles" msgstr "Byanze in" -#: src/lang.c:2424 +#: src/lang.c:2445 #, fuzzy msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "#Gumana: Byose Byanze in" -#: src/lang.c:2428 +#: src/lang.c:2449 #, fuzzy msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Kuri Amatsinda Bivuye" -#: src/lang.c:2429 +#: src/lang.c:2450 #, fuzzy msgid "No unsubscribed groups in newsrc" msgstr "Amatsinda in" -#: src/lang.c:2430 +#: src/lang.c:2451 #, fuzzy msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "#Amatsinda Bivuye" -#: src/lang.c:2435 +#: src/lang.c:2456 #, fuzzy msgid "Remove bogus groups from newsrc" msgstr "Amatsinda Bivuye" -#: src/lang.c:2436 +#: src/lang.c:2457 #, fuzzy msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" @@ -6708,67 +6750,67 @@ msgid "# What to do with bogus groups in msgstr "#Kuri Na: Amatsinda in Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. " "garagaza cyane Na: ku Ihitamo" -#: src/lang.c:2444 +#: src/lang.c:2465 #, fuzzy msgid "Enter number of seconds until active file will be reread. sets." msgstr "Umubare Bya amasogonda Gikora IDOSIYE" -#: src/lang.c:2445 +#: src/lang.c:2466 #, fuzzy msgid "Interval in secs to reread active" msgstr "in Kuri Gikora" -#: src/lang.c:2446 +#: src/lang.c:2467 #, fuzzy msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "#Intera in amasogonda hagati i Gikora IDOSIYE 0 Nta narimwe" -#: src/lang.c:2451 +#: src/lang.c:2472 #, fuzzy msgid "Reconnect to server automatically" msgstr "Kongerakwihuza Kuri Seriveri ku buryo bwikora" -#: src/lang.c:2452 +#: src/lang.c:2473 #, fuzzy msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "#ku buryo bwikora Kuri Seriveri NIBA i Ukwihuza ni" -#: src/lang.c:2456 +#: src/lang.c:2477 #, fuzzy msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Amakopi Bya Incamake Idosiye" -#: src/lang.c:2457 +#: src/lang.c:2478 #, fuzzy msgid "Cache NNTP overview files locally" msgstr "Incamake Idosiye" -#: src/lang.c:2458 +#: src/lang.c:2479 #, fuzzy msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "#Kurema Amakopi Bya Incamake Idosiye" -#: src/lang.c:2462 +#: src/lang.c:2483 #, fuzzy msgid "Enter format string. sets, cancels." msgstr "Imiterere Ikurikiranyanyuguti" -#: src/lang.c:2463 +#: src/lang.c:2484 #, fuzzy msgid "Format string for display of dates" msgstr "Ikurikiranyanyuguti kugirango Kugaragaza Bya Amatariki" -#: src/lang.c:2464 +#: src/lang.c:2485 #, fuzzy msgid "# Format string for date representation\n" msgstr "#Ikurikiranyanyuguti kugirango Itariki" -#: src/lang.c:2470 +#: src/lang.c:2491 #, fuzzy msgid "Unicode normalization form" msgstr "Ifishi" -#: src/lang.c:2471 +#: src/lang.c:2492 #, fuzzy msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" @@ -6779,11 +6821,11 @@ msgid "# Unicode normalization form\n" "# 4 = NFD\n" msgstr "#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. 4." -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "" -#: src/lang.c:2484 +#: src/lang.c:2505 #, fuzzy msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "#Umwandiko ni ku" @@ -6808,13 +6850,13 @@ msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "Inyuma" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 #, fuzzy msgid "Rejoin current group\n" msgstr "KIGEZWEHO" # svx/inc\globlmn.hrc:ITEM_FILE_MAIL_INBOX.text -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, fuzzy, c-format msgid "Read (%s)\n" msgstr "Gusoma" @@ -6831,7 +6873,7 @@ msgstr "Iheruka Komandi:" #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -6840,26 +6882,26 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "Kwagura" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" "posting doesn't contain any 8bit chars and thus folding won't happen\n" msgstr "" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, fuzzy, c-format msgid "Posting: %.*s ..." msgstr "S" @@ -6900,7 +6942,7 @@ msgid "This message has been composed in msgstr "Ubutumwa in i Imiterere iyi Imbanziriza Ubutumwa OYA i Gishya Imiterere Na " "Bya Gicurasi" -#: src/save.c:958 +#: src/save.c:964 #, fuzzy msgid "bytes" msgstr "Bayite" Binary files tin-1.9.1/po/sv.gmo and tin-1.9.2/po/sv.gmo differ diff -Nurp tin-1.9.1/po/sv.po tin-1.9.2/po/sv.po --- tin-1.9.1/po/sv.po 2006-04-09 17:55:11.000000000 +0200 +++ tin-1.9.2/po/sv.po 2007-02-01 14:02:45.223555409 +0100 @@ -6,7 +6,7 @@ msgid "" msgstr "Project-Id-Version: tin 1.8.0\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2006-01-11 21:22+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -14,7 +14,7 @@ msgstr "Project-Id-Version: tin 1.8.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" @@ -155,135 +155,135 @@ msgstr "" msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(okänd)" @@ -646,7 +646,7 @@ msgstr "" msgid "Creating newsrc file...\n" msgstr "" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Förvald" @@ -1630,7 +1630,7 @@ msgstr "" msgid "choose next group with unread news" msgstr "" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "avsluta" @@ -1947,327 +1947,335 @@ msgid "Lines %s " msgstr "Rader %s " #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "" - -#: src/lang.c:479 msgid "Mail" msgstr "Post" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "postlåda " -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Skicka artikel(ar) till [%.*s]> " -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "Skickar logg till %s\n" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "" -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "Skicka FELRAPPORT till %s?" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "Skickad" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "Skickar till %s..." -#: src/lang.c:487 +#: src/lang.c:486 msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" "# The 4th field is the basedir (ie. ~/Mail or ~/News)\n" "#\n" msgstr "" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "%s markerad som oläst" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "Markera alla artiklar som lästa%s?" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "" -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "Markera grupp %s som läst?" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "Markera tråd som läst%s?" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "" -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "Matchar %s grupper..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=sätt nuvarande till n; %s=nästa olästa; %s=sökmönster; %s=döda/välj" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "" -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=rad upp; %s=rad ner; %s=sida upp; %s=sida ned; %s=topp; %s=botten" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=sök framåt; %s=sök bakåt; %s=avsluta" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=rad ner; %s=rad upp; %s=hjälp; %s=flytta; %s=avsluta; %s=växla alla/olästa" -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=hjälp; %s=rad ner; %s=rad upp; %s=avsluta; %s=märk; %s=markera oläst" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "--Mer--" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "Flyttar %s..." +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "" + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr ", namn: " -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "Gå till diskussionsgrupp [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "diskussionsgrupper" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "" -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "diskussionsgrupp" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "Försöka att spara filen newsrc igen?" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "" -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "-- Nästa svar --" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "Nej " -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "*** Inga artiklar ***" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "Inga artiklar har postats" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "*** Ingen beskrivning ***" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "Inget filnamn" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "Ingen grupp" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "*** Inga grupper ***" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "Inga fler grupper att läsa" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "Inget sista meddelande" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "Ingen e-postadress" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "Ingen match" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "Inga fler grupper" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "Inga diskussionsgrupper" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "Slut på olästa artiklar" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "Ingen föregående grupp" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "Ingen föregående oläst artikel" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "Inga svar" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "Ingen söksträng" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "Inget ämne" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2283,315 +2291,319 @@ msgid "# NNTP-server -> newsrc translati "#\n" msgstr "" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "Endast" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Flagga inte aktiverad. Bygg om med %s." -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "Alternativmenyn" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "Posta en uppföljning..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" msgstr "" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Posta till diskussionsgrupp(er) [%s]> " -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "" -#: src/lang.c:580 +#: src/lang.c:582 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "Postar artikel..." -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "Hetta %s" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "Märkt %s" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "" -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "" -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "" -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "Vill du verkligen avsluta?" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "" -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "" -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "" -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "" -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "Vill du verkligen avsluta utan att spara din konfiguration?" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "Vill du avbryta denna operation?" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "Vill du avsluta tin omedelbart?" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "Läsa svar> " -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "Läser (\"q\" för att avsluta)..." -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "Läser %sarticles..." -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "Läser %sattributfil...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "Läser %skonfigurationsfil...\n" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "Läser filterfil...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "Läser %s grupper..." -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "Läser grupper från aktiv fil..." -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "" -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "" -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "" -#: src/lang.c:620 +#: src/lang.c:621 +msgid "References: line " +msgstr "" + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "(%d:%02d återstår)" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "" -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "Fel: byt namn på %s till %s" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "" -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "" -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "Återställ newsrc?" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "Tryck för att fortsätta..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "" -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "Välj rader: (num): " -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "" -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "" -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "" -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "Välj tid i dagar : " -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2603,223 +2615,223 @@ msgid "# %s server configuration file\n" "\n" msgstr "" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "Visar endast olästa grupper" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "" -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "Spara" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "Spara \"%s\" (%s/%s)?" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "Spara konfiguration före du fortsätter?" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "Spara filnamn> " -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "Sparad" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "Sparade %s...\n" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "Ingenting sparades" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s från %d %s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s sparad till %s%s --" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s sparad till %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "Sparar..." -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "%s: skärm är för liten\n" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "skärm är för liten, %s avslutas\n" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "Sök bakåt [%s]> " -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "" -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "Sök framåt [%s]> " -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "Söker..." -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "" -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "Välj artikel> " -#: src/lang.c:674 +#: src/lang.c:677 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Välj alternativnummer före texten eller använd piltangenter och . \"q\" " "avsluta." -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "Välj grupp> " -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "" -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "Välj tråd > " -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "" -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "Startar: (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "Lista tråd (%d av %d)" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "Tråd (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "" -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "" -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "" -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "" -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "%d dagar" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "TeX " -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:698 +#: src/lang.c:701 msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" "# 5=Message-ID: & last References: entry only\n" @@ -2829,207 +2841,207 @@ msgid "# Defaults for quick (1 key) kill "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:711 +#: src/lang.c:714 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "Tråd" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "trådar" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "tråd" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "Tråd %4s av %4s" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "Trådar artiklar..." -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "%d Försöker att låsa %s" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr " h=hjälp\n" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "Obegränsad" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "" -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "Fel vid avkodning av %s : %s" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "Inget slut." -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "%s lyckades avkodas." -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "oläst " -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "Uppdaterad" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "Uppdaterar" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "Öppnar %s\n" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "Inga fler URL:er i denna artikel" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr "" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr "" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr "" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr "" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr "" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr " -h detta hjälpmeddelande" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr "" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr "" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "\n" "Mail bug reports/comments to %s" @@ -3037,53 +3049,53 @@ msgstr "\n" "Skicka felrapporter/kommentarer till %s\n" "Rapportera synpunkter på översättningen till ." -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr "" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr "" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr "" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr " -w posta en artikel och avsluta" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr "" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr "" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr "" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr "" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr "" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr " -z starta om det finns olästa diskussioner" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3092,64 +3104,69 @@ msgstr "En applikation för att läsa disk "\n" "Användning: %s [flaggor] [diskussionsgrupp[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr "" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr " -V skriv ut version & datuminformation" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "Visa \"%s\" (%s/%s)?" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" "%-100s\n" msgstr "" -#: src/lang.c:782 +#: src/lang.c:786 msgid "\n" "Warning: article unchanged after editing\n" msgstr "" -#: src/lang.c:783 +#: src/lang.c:787 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "" -#: src/lang.c:784 +#: src/lang.c:788 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "" -#: src/lang.c:786 +#: src/lang.c:790 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "" -#: src/lang.c:789 +#: src/lang.c:793 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3162,7 +3179,7 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:793 +#: src/lang.c:797 msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" " quoted-printable) and an external inews program to submit your\n" @@ -3170,7 +3187,7 @@ msgid "\n" " not be encoded properly.\n" msgstr "" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "\n" "\n" @@ -3179,7 +3196,7 @@ msgid "\n" "Read WHATSNEW, etc...\n" msgstr "" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "\n" "\n" @@ -3187,7 +3204,7 @@ msgid "\n" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3196,18 +3213,18 @@ msgid "Warning: tin wrote fewer groups t "before you start tin once again!\n" msgstr "" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3217,47 +3234,47 @@ msgid "\n" " possible.\n" msgstr "" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "" -#: src/lang.c:814 +#: src/lang.c:818 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "Skriver attributfil..." -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "%d svar" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "Lade till %d %s" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "Ja " -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr " Du har post\n" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3269,11 +3286,11 @@ msgid "\n" " M)enu option.\n" msgstr "" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D felsökningsläge 1=NNTP 2=ALLA" -#: src/lang.c:843 +#: src/lang.c:847 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3289,11 +3306,11 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "växla färg" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3317,349 +3334,349 @@ msgid "# Changing colors of several scre "\n" msgstr "" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr "" -#: src/lang.c:877 +#: src/lang.c:881 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "" -#: src/lang.c:881 +#: src/lang.c:885 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "" -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "" -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "Ingen början." -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "Inget data." -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "Okänt fel." -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tKontrollsumma för %s (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "" -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "genomför PGP-operationer på artikel" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=kryptera, %s=signera, %s=båda, %s=avsluta: " -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=signera, %s=signera & inkludera publik nyckel, %s=avsluta: " -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "" -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "" -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "Ansluter till %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "Kopplar ner från server...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "" -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "205 Stänger anslutning" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr " -A tvinga autentisering vid anslutning" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr " -Q snabbstart. Samma som -nqd" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr "" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Okänd tjänst.\n" -#: src/lang.c:958 +#: src/lang.c:962 msgid "\n" "socket or connect problem\n" msgstr "" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Anslutning till %s: " -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "Ger upp...\n" -#: src/lang.c:964 +#: src/lang.c:968 msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "Kan inte öppna %s. Försök med %s -r för att läsa diskussionsgrupper via " "NNTP.\n" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr " -Q snabbstart. Samma som -qd" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr "" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr "" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Din server har inte Xref: i sina NOV-filer.\n" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "%d %s utskriven" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "Skriv ut" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "Skriver ut..." -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "Inget kommando" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "Rör" -#: src/lang.c:995 +#: src/lang.c:999 #, fuzzy, c-format msgid "Pipe to command [%.*s]> " msgstr "Öppna rör till kommando [%.*s]> " -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "" -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "" -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3668,7 +3685,7 @@ msgid "\n" " newsgroup names.\n" msgstr "" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3676,7 +3693,7 @@ msgid "\n" " Please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3684,13 +3701,13 @@ msgid "\n" " To avoid trouble please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3711,498 +3728,518 @@ msgid "\n" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "Skalkommando (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "Ange skalkommando [%s]> " -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Grupp %.*s (\"q\" för att avsluta)..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "Grupp %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "Server ej tillgänglig\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "Försöker med %s" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 msgid "None" msgstr "Ingen" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "Ämne" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "Referenser" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "Nej" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "Ja" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "Göm alla" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "Adress" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "Hela namnet" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "Adress och namn" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "Max" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "Summa" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "Medelvärde" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "Rader" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "Poäng" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "Rader & poäng" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "Svart" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "Röd" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "Grön" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "Brun" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "Blå" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "Rosa" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "Turkos" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "Vit" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "Grå" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "Ljusröd" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "Ljusgrön" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "Gul" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "Ljusblå" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "Ljusrosa" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "Ljusturkos" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "Ljusvit" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "Ingenting" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "Markera" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "Blanksteg" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "Normal" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "Understruken" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "Blinkande" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "Fet" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "ingen" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "kommandon" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "välj" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "Skalarkiv" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "Ämne: (fallande)" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "Ämne: (stigande)" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "Från: (fallande)" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "Från: (stigande)" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "Datum: (fallande)" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "Datum: (stigande)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "Poäng (fallande)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "Poäng (stigande)" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "Rader: (fallande)" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "Rader: (stigande)" -#: src/lang.c:1248 +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "" + +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "Behåll alltid" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "Ta alltid bort" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "Ingenting speciellt" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "nej" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "Visningsalternativ" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "" -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "" -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" "# 0 = none\n" @@ -4211,31 +4248,31 @@ msgid "# Part of from field to display\n "# 3 = both\n" msgstr "" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "" -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "Tråda artiklar efter" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4246,15 +4283,15 @@ msgid "# Thread articles by ...\n" "# 5 = Percentage Match\n" msgstr "" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -4267,11 +4304,11 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -4279,15 +4316,15 @@ msgid "# Thread score\n" "# 2 = average\n" msgstr "" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "" -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "Sortera artiklar efter" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4303,59 +4340,61 @@ msgid "# Sort articles by ...\n" "# 10 = Lines ascending\n" msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "Sortera trådar efter" -#: src/lang.c:1466 +#: src/lang.c:1480 msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" msgstr "" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "" -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "" -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "" -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "Visa endast olästa artiklar" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "Filtrera vilka artiklar" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" "# * 0 = only kill unread articles\n" @@ -4363,184 +4402,162 @@ msgid "# Filter which articles\n" "# 2 = kill all articles and never show them\n" msgstr "" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "" - -#: src/lang.c:1504 -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "" - -#: src/lang.c:1508 -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "" - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "" - -#: src/lang.c:1510 -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "" - -#: src/lang.c:1515 -msgid "Scrolling with / past the end of an art. jumps to the unread one." +#: src/lang.c:1519 +msgid "Go to the next unread article with" msgstr "" -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" -msgstr "" - -#: src/lang.c:1517 -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" +#: src/lang.c:1520 +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" msgstr "" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "" -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "" -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -4549,16 +4566,16 @@ msgid "# What informations should be dis "# 3 = lines & score\n" msgstr "" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -4568,27 +4585,27 @@ msgid "# Number of lines that cursor-up/ "# 2 or greater = scroll by 2 or more lines (only in the pager)\n" msgstr "" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "Visa signaturer" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -4598,28 +4615,28 @@ msgid "# Handling of uuencoded data in t "# be folded into a tag line.\n" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "Visa \"a som Umlaut-a" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -4628,11 +4645,11 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -4643,556 +4660,582 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" "# 1 = regex\n" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "Använd ANSI-färg" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "Färg för signaturer" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" "# 0 = Normal\n" @@ -5207,54 +5250,54 @@ msgid "# Attributes of word highlighting "# Default: 6 (bold)\n" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# Possible values are (the default is marked with *):\n" @@ -5263,55 +5306,55 @@ msgid "# Should the leading and ending s "# * 2 = print a space instead\n" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "E-postadress (och hela namnet)" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -5319,50 +5362,50 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" "# 0 = Nothing special\n" @@ -5375,50 +5418,50 @@ msgid "# How quoting should be handled w "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" "# %%N Full Name %%C First Name %%I Initials\n" msgstr "" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "MM_CHARSET" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" "# If not set, the value of the environment variable MM_CHARSET is used.\n" @@ -5427,27 +5470,27 @@ msgid "# Charset supported locally which "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "MM_NETWORK_CHARSET" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "Format på postlåda" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "# Format på postlåda.\n" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" "# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n" @@ -5455,42 +5498,42 @@ msgid "# MIME encoding (8bit, base64, qu "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in header are encoded regardless of the value of this\n" "# parameter unless post_mime_encoding is 8bit as well.\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" "# 8bit chars in headers are encoded regardless of the value of this " @@ -5500,160 +5543,160 @@ msgid "# If ON, 8bit characters in mail "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" msgstr "" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "Postkatalog" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "" -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no\n" @@ -5661,95 +5704,95 @@ msgid "# Perform post processing (saving "# 2 = yes\n" msgstr "" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "The printer program with options that is to be used to print articles/threads." msgstr "" -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "Extern inews" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -5757,11 +5800,11 @@ msgid "# Format of mailer line including "# ie. elm interactive : elm -i %%F -s \"%%S\" \"%%T\"\n" msgstr "" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -5769,56 +5812,56 @@ msgid "# Interactive mailreader\n" "# 2 = use interactive mailreader without headers in file\n" msgstr "" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "Ta bort ~/.article efter postning" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" "# * 0 = keep\n" @@ -5826,55 +5869,55 @@ msgid "# What to do with bogus groups in "# 2 = highlight with D on selection screen\n" msgstr "" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "" -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -5884,11 +5927,11 @@ msgid "# Unicode normalization form\n" "# 4 = NFD\n" msgstr "" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "" @@ -5912,11 +5955,11 @@ msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "Läs (%s)\n" @@ -5933,7 +5976,7 @@ msgstr "" #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -5942,26 +5985,26 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" "posting doesn't contain any 8bit chars and thus folding won't happen\n" msgstr "" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "Postar: %.*s ..." @@ -6000,7 +6043,7 @@ msgid "This message has been composed in "\n" msgstr "" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "byte" diff -Nurp tin-1.9.1/po/tin.pot tin-1.9.2/po/tin.pot --- tin-1.9.1/po/tin.pot 2006-04-09 17:55:01.000000000 +0200 +++ tin-1.9.2/po/tin.pot 2007-02-01 14:02:38.963324642 +0100 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-04-09 17:19+0200\n" +"POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" @@ -157,138 +157,138 @@ msgstr "" msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:727 +#: src/attrib.c:730 #, c-format msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:748 +#: src/attrib.c:751 #, c-format msgid "" "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:749 +#: src/attrib.c:752 #, c-format msgid "" "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "" "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:768 +#: src/attrib.c:771 #, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "" @@ -652,7 +652,7 @@ msgstr "" msgid "Creating newsrc file...\n" msgstr "" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "" @@ -1670,7 +1670,7 @@ msgstr "" msgid "choose next group with unread news" msgstr "" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 msgid "quit" msgstr "" @@ -1993,46 +1993,42 @@ msgid "Lines %s " msgstr "" #: src/lang.c:478 -msgid "Message-ID: line " -msgstr "" - -#: src/lang.c:479 msgid "Mail" msgstr "" -#: src/lang.c:480 +#: src/lang.c:479 msgid "mailbox " msgstr "" -#: src/lang.c:481 +#: src/lang.c:480 #, c-format msgid "Mail article(s) to [%.*s]> " msgstr "" -#: src/lang.c:482 +#: src/lang.c:481 #, c-format msgid "Mailing log to %s\n" msgstr "" -#: src/lang.c:483 +#: src/lang.c:482 msgid "Mail bug report..." msgstr "" -#: src/lang.c:484 +#: src/lang.c:483 #, c-format msgid "Mail BUG REPORT to %s?" msgstr "" -#: src/lang.c:485 +#: src/lang.c:484 msgid "Mailed" msgstr "" -#: src/lang.c:486 +#: src/lang.c:485 #, c-format msgid "Mailing to %s..." msgstr "" -#: src/lang.c:487 +#: src/lang.c:486 msgid "" "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" @@ -2040,285 +2036,297 @@ msgid "" "#\n" msgstr "" -#: src/lang.c:490 +#: src/lang.c:489 #, c-format msgid "%s marked as unread" msgstr "" -#: src/lang.c:491 +#: src/lang.c:490 #, c-format msgid "Marked %d of %d tagged %s as read" msgstr "" -#: src/lang.c:492 +#: src/lang.c:491 #, c-format msgid "Mark all articles as read%s?" msgstr "" -#: src/lang.c:493 +#: src/lang.c:492 #, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "" -#: src/lang.c:494 +#: src/lang.c:493 #, c-format msgid "Mark group %s as read?" msgstr "" -#: src/lang.c:495 +#: src/lang.c:494 #, c-format msgid "Mark thread as read%s?" msgstr "" -#: src/lang.c:496 +#: src/lang.c:495 #, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "" -#: src/lang.c:497 +#: src/lang.c:496 #, c-format msgid "Matching %s groups..." msgstr "" -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "" -#: src/lang.c:499 +#: src/lang.c:498 #, c-format msgid "" "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %" "s=list thread" msgstr "" -#: src/lang.c:500 +#: src/lang.c:499 #, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "" -#: src/lang.c:501 +#: src/lang.c:500 #, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "" -#: src/lang.c:503 +#: src/lang.c:502 #, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "" -#: src/lang.c:504 +#: src/lang.c:503 #, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "" -#: src/lang.c:505 +#: src/lang.c:504 #, c-format msgid "" "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "" -#: src/lang.c:506 +#: src/lang.c:505 #, c-format msgid "" "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/" "out" msgstr "" -#: src/lang.c:507 +#: src/lang.c:506 #, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "" -#: src/lang.c:508 +#: src/lang.c:507 #, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "" -#: src/lang.c:509 +#: src/lang.c:508 msgid "--More--" msgstr "" -#: src/lang.c:510 +#: src/lang.c:509 #, c-format msgid "Moving %s..." msgstr "" +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +msgid "Message-ID: line " +msgstr "" + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 msgid ", name: " msgstr "" -#: src/lang.c:513 +#: src/lang.c:515 #, c-format msgid "Goto newsgroup [%s]> " msgstr "" -#: src/lang.c:514 +#: src/lang.c:516 msgid "newsgroups" msgstr "" -#: src/lang.c:515 +#: src/lang.c:517 #, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "" -#: src/lang.c:516 +#: src/lang.c:518 msgid "newsgroup" msgstr "" -#: src/lang.c:517 +#: src/lang.c:519 msgid "Try and save newsrc file again?" msgstr "" -#: src/lang.c:518 +#: src/lang.c:520 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "" -#: src/lang.c:519 +#: src/lang.c:521 msgid "newsrc file saved successfully.\n" msgstr "" -#: src/lang.c:520 +#: src/lang.c:522 msgid "-- Next response --" msgstr "" -#: src/lang.c:521 +#: src/lang.c:523 #, c-format msgid "NNTP authorization password not found for %s" msgstr "" -#: src/lang.c:522 +#: src/lang.c:524 msgid "No " msgstr "" -#: src/lang.c:523 +#: src/lang.c:525 msgid "*** No articles ***" msgstr "" -#: src/lang.c:524 +#: src/lang.c:526 msgid "No articles have been posted" msgstr "" -#: src/lang.c:525 +#: src/lang.c:527 msgid "*** No description ***" msgstr "" -#: src/lang.c:526 +#: src/lang.c:528 msgid "No filename" msgstr "" -#: src/lang.c:527 +#: src/lang.c:529 msgid "No group" msgstr "" -#: src/lang.c:528 +#: src/lang.c:530 msgid "*** No groups ***" msgstr "" -#: src/lang.c:529 +#: src/lang.c:531 msgid "No more groups to read" msgstr "" -#: src/lang.c:530 +#: src/lang.c:532 msgid "No last message" msgstr "" -#: src/lang.c:531 +#: src/lang.c:533 msgid "No mail address" msgstr "" -#: src/lang.c:532 +#: src/lang.c:534 msgid "No articles marked for saving" msgstr "" -#: src/lang.c:533 +#: src/lang.c:535 msgid "No match" msgstr "" -#: src/lang.c:534 +#: src/lang.c:536 msgid "No more groups" msgstr "" -#: src/lang.c:535 +#: src/lang.c:537 msgid "No newsgroups" msgstr "" -#: src/lang.c:536 +#: src/lang.c:538 msgid "No next unread article" msgstr "" -#: src/lang.c:537 +#: src/lang.c:539 msgid "No previous group" msgstr "" -#: src/lang.c:538 +#: src/lang.c:540 msgid "No previous unread article" msgstr "" -#: src/lang.c:539 +#: src/lang.c:541 msgid "No responses" msgstr "" -#: src/lang.c:540 +#: src/lang.c:542 msgid "No responses to list in current thread" msgstr "" -#: src/lang.c:541 +#: src/lang.c:543 msgid "No search string" msgstr "" -#: src/lang.c:542 +#: src/lang.c:544 msgid "No subject" msgstr "" -#: src/lang.c:544 +#: src/lang.c:546 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "" -#: src/lang.c:545 +#: src/lang.c:547 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "" -#: src/lang.c:546 +#: src/lang.c:548 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:547 +#: src/lang.c:549 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "" -#: src/lang.c:548 +#: src/lang.c:550 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "" -#: src/lang.c:550 +#: src/lang.c:552 #, c-format msgid "No viewer found for %s/%s\n" msgstr "" -#: src/lang.c:551 +#: src/lang.c:553 msgid "Newsgroup does not exist on this server" msgstr "" -#: src/lang.c:552 +#: src/lang.c:554 #, c-format msgid "Group %s not found in active file" msgstr "" -#: src/lang.c:553 +#: src/lang.c:555 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:554 +#: src/lang.c:556 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:555 +#: src/lang.c:557 #, c-format msgid "" "# NNTP-server -> newsrc translation table and NNTP-server\n" @@ -2335,318 +2343,322 @@ msgid "" "#\n" msgstr "" -#: src/lang.c:562 +#: src/lang.c:564 msgid "Only" msgstr "" -#: src/lang.c:563 +#: src/lang.c:565 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "" -#: src/lang.c:564 +#: src/lang.c:566 msgid "Options Menu" msgstr "" -#: src/lang.c:567 +#: src/lang.c:569 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "" -#: src/lang.c:568 +#: src/lang.c:570 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "" -#: src/lang.c:569 +#: src/lang.c:571 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "" -#: src/lang.c:570 +#: src/lang.c:572 msgid "Post a followup..." msgstr "" #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 msgid "" "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" "and pick it up again with ^O later.\n" msgstr "" -#: src/lang.c:575 +#: src/lang.c:577 msgid "Posted articles history" msgstr "" -#: src/lang.c:576 +#: src/lang.c:578 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "" -#: src/lang.c:577 +#: src/lang.c:579 msgid "-- post processing started --" msgstr "" -#: src/lang.c:578 +#: src/lang.c:580 msgid "-- post processing completed --" msgstr "" -#: src/lang.c:579 +#: src/lang.c:581 #, c-format msgid "Post subject [%s]> " msgstr "" -#: src/lang.c:580 +#: src/lang.c:582 msgid "" "# Summary of mailed/posted messages viewable by 'W' command from within " "tin.\n" msgstr "" -#: src/lang.c:581 +#: src/lang.c:583 msgid "Posting article..." msgstr "" -#: src/lang.c:582 +#: src/lang.c:584 #, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:583 +#: src/lang.c:585 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:584 +#: src/lang.c:586 #, c-format msgid "Tagged %s" msgstr "" -#: src/lang.c:585 +#: src/lang.c:587 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:586 +#: src/lang.c:588 msgid "Processing mail messages marked for deletion." msgstr "" -#: src/lang.c:587 +#: src/lang.c:589 msgid "Processing saved articles marked for deletion." msgstr "" -#: src/lang.c:588 +#: src/lang.c:590 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "" -#: src/lang.c:589 +#: src/lang.c:591 msgid "Article unchanged, abort mailing?" msgstr "" -#: src/lang.c:590 +#: src/lang.c:592 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "" -#: src/lang.c:592 +#: src/lang.c:594 msgid "Add quick kill filter?" msgstr "" -#: src/lang.c:593 +#: src/lang.c:595 msgid "Add quick selection filter?" msgstr "" -#: src/lang.c:594 +#: src/lang.c:596 msgid "Do you really want to quit?" msgstr "" -#: src/lang.c:595 +#: src/lang.c:597 #, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "" -#: src/lang.c:596 +#: src/lang.c:598 msgid "You have tagged articles in this group - quit anyway?" msgstr "" -#: src/lang.c:597 +#: src/lang.c:599 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "" -#: src/lang.c:598 +#: src/lang.c:600 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "" -#: src/lang.c:599 +#: src/lang.c:601 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "" -#: src/lang.c:600 +#: src/lang.c:602 msgid "Do you really want to quit without saving your configuration?" msgstr "" -#: src/lang.c:603 +#: src/lang.c:605 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "" -#: src/lang.c:604 +#: src/lang.c:606 msgid "Do you want to abort this operation?" msgstr "" -#: src/lang.c:605 +#: src/lang.c:607 msgid "Do you want to exit tin immediately?" msgstr "" -#: src/lang.c:606 +#: src/lang.c:608 msgid "Read response> " msgstr "" -#: src/lang.c:607 +#: src/lang.c:609 msgid "Reading ('q' to quit)..." msgstr "" -#: src/lang.c:608 +#: src/lang.c:610 #, c-format msgid "Reading %sarticles..." msgstr "" -#: src/lang.c:609 +#: src/lang.c:611 #, c-format msgid "Reading %sattributes file...\n" msgstr "" -#: src/lang.c:610 +#: src/lang.c:612 #, c-format msgid "Reading %sconfig file...\n" msgstr "" -#: src/lang.c:611 +#: src/lang.c:613 msgid "Reading filter file...\n" msgstr "" -#: src/lang.c:612 +#: src/lang.c:614 #, c-format msgid "Reading %s groups..." msgstr "" -#: src/lang.c:613 +#: src/lang.c:615 msgid "Reading input history file...\n" msgstr "" -#: src/lang.c:614 +#: src/lang.c:616 msgid "Reading keymap file...\n" msgstr "" -#: src/lang.c:615 +#: src/lang.c:617 msgid "Reading groups from active file... " msgstr "" -#: src/lang.c:616 +#: src/lang.c:618 msgid "Reading groups from newsrc file... " msgstr "" -#: src/lang.c:617 +#: src/lang.c:619 msgid "Reading newsgroups file... " msgstr "" -#: src/lang.c:618 +#: src/lang.c:620 msgid "Reading newsrc file..." msgstr "" -#: src/lang.c:620 +#: src/lang.c:621 +msgid "References: line " +msgstr "" + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "" -#: src/lang.c:622 +#: src/lang.c:625 #, c-format msgid "Bogus group %s removed." msgstr "" -#: src/lang.c:623 +#: src/lang.c:626 #, c-format msgid "Error: rename %s to %s" msgstr "" -#: src/lang.c:624 +#: src/lang.c:627 msgid "Reply to author..." msgstr "" -#: src/lang.c:625 +#: src/lang.c:628 msgid "Repost" msgstr "" -#: src/lang.c:626 +#: src/lang.c:629 msgid "Reposting article..." msgstr "" -#: src/lang.c:627 +#: src/lang.c:630 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:628 +#: src/lang.c:631 msgid "Reset newsrc?" msgstr "" -#: src/lang.c:629 +#: src/lang.c:632 msgid "Responses have been directed to the following newsgroups" msgstr "" -#: src/lang.c:630 +#: src/lang.c:633 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:634 #, c-format msgid "RespNo %4d of %4d" msgstr "" -#: src/lang.c:632 +#: src/lang.c:635 msgid "Press to continue..." msgstr "" -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "" -#: src/lang.c:635 +#: src/lang.c:638 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:636 +#: src/lang.c:639 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:637 +#: src/lang.c:640 #, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "" -#: src/lang.c:638 +#: src/lang.c:641 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:639 +#: src/lang.c:642 #, c-format msgid "Select Subject [%s] (y/n): " msgstr "" -#: src/lang.c:640 +#: src/lang.c:643 msgid "Select text pattern : " msgstr "" -#: src/lang.c:641 +#: src/lang.c:644 msgid "Select time in days : " msgstr "" -#: src/lang.c:642 +#: src/lang.c:645 #, c-format msgid "" "# %s server configuration file\n" @@ -2659,224 +2671,224 @@ msgid "" "\n" msgstr "" -#: src/lang.c:648 +#: src/lang.c:651 msgid "Showing unread groups only" msgstr "" -#: src/lang.c:649 +#: src/lang.c:652 msgid "Subject: line (ignore case) " msgstr "" -#: src/lang.c:650 +#: src/lang.c:653 msgid "Subject: line (case sensitive)" msgstr "" -#: src/lang.c:651 +#: src/lang.c:654 msgid "Save" msgstr "" -#: src/lang.c:652 +#: src/lang.c:655 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "" -#: src/lang.c:653 +#: src/lang.c:656 msgid "Save configuration before continuing?" msgstr "" -#: src/lang.c:654 +#: src/lang.c:657 msgid "Save filename> " msgstr "" -#: src/lang.c:655 +#: src/lang.c:658 msgid "Saved" msgstr "" -#: src/lang.c:656 +#: src/lang.c:659 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "" -#: src/lang.c:657 +#: src/lang.c:660 #, c-format msgid "Saved %s...\n" msgstr "" -#: src/lang.c:658 +#: src/lang.c:661 msgid "Nothing was saved" msgstr "" -#: src/lang.c:659 +#: src/lang.c:662 #, c-format msgid "" "\n" "%s %d %s from %d %s\n" msgstr "" -#: src/lang.c:660 +#: src/lang.c:663 #, c-format msgid "-- %s saved to %s%s --" msgstr "" -#: src/lang.c:661 +#: src/lang.c:664 #, c-format msgid "-- %s saved to %s - %s --" msgstr "" -#: src/lang.c:662 +#: src/lang.c:665 msgid "Saving..." msgstr "" -#: src/lang.c:663 +#: src/lang.c:666 #, c-format msgid "%s: Screen initialization failed" msgstr "" -#: src/lang.c:665 +#: src/lang.c:668 #, c-format msgid "%s: screen is too small\n" msgstr "" -#: src/lang.c:667 +#: src/lang.c:670 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "" -#: src/lang.c:668 +#: src/lang.c:671 #, c-format msgid "Search backwards [%s]> " msgstr "" -#: src/lang.c:669 +#: src/lang.c:672 #, c-format msgid "Search body [%s]> " msgstr "" -#: src/lang.c:670 +#: src/lang.c:673 #, c-format msgid "Search forwards [%s]> " msgstr "" -#: src/lang.c:671 +#: src/lang.c:674 msgid "Searching..." msgstr "" -#: src/lang.c:672 +#: src/lang.c:675 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "" -#: src/lang.c:673 +#: src/lang.c:676 msgid "Select article> " msgstr "" -#: src/lang.c:674 +#: src/lang.c:677 msgid "" "Select option number before text or use arrow keys and . 'q' to quit." msgstr "" -#: src/lang.c:675 +#: src/lang.c:678 msgid "Select group> " msgstr "" -#: src/lang.c:676 +#: src/lang.c:679 #, c-format msgid "Enter selection pattern [%s]> " msgstr "" -#: src/lang.c:677 +#: src/lang.c:680 msgid "Select thread > " msgstr "" -#: src/lang.c:678 +#: src/lang.c:681 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "" -#: src/lang.c:679 +#: src/lang.c:682 msgid "servers active-file" msgstr "" -#: src/lang.c:680 +#: src/lang.c:683 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "" -#: src/lang.c:681 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, c-format msgid "Starting: (%s)" msgstr "" -#: src/lang.c:683 +#: src/lang.c:686 #, c-format msgid "List Thread (%d of %d)" msgstr "" -#: src/lang.c:684 +#: src/lang.c:687 #, c-format msgid "Thread (%.*s)" msgstr "" -#: src/lang.c:685 +#: src/lang.c:688 msgid "Enter wildcard subscribe pattern> " msgstr "" -#: src/lang.c:686 +#: src/lang.c:689 #, c-format msgid "subscribed to %d groups" msgstr "" -#: src/lang.c:687 +#: src/lang.c:690 #, c-format msgid "Subscribed to %s" msgstr "" -#: src/lang.c:688 +#: src/lang.c:691 msgid "Subscribing... " msgstr "" -#: src/lang.c:689 +#: src/lang.c:692 #, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "" -#: src/lang.c:690 +#: src/lang.c:693 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:691 +#: src/lang.c:694 msgid "Superseding article ..." msgstr "" -#: src/lang.c:692 +#: src/lang.c:695 #, c-format msgid "" "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "" -#: src/lang.c:694 +#: src/lang.c:697 #, c-format msgid "%d days" msgstr "" -#: src/lang.c:695 +#: src/lang.c:698 msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "" -#: src/lang.c:697 +#: src/lang.c:700 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:698 +#: src/lang.c:701 msgid "" "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" @@ -2887,262 +2899,262 @@ msgid "" "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:711 +#: src/lang.c:714 msgid "" "# If ON use print current subject or newsgroup description in the last line\n" msgstr "" -#: src/lang.c:712 +#: src/lang.c:715 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "" -#: src/lang.c:713 +#: src/lang.c:716 msgid "There is no news\n" msgstr "" -#: src/lang.c:714 +#: src/lang.c:717 msgid "Thread" msgstr "" -#: src/lang.c:715 +#: src/lang.c:718 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:716 +#: src/lang.c:719 msgid "Thread deselected" msgstr "" -#: src/lang.c:717 +#: src/lang.c:720 msgid "Thread selected" msgstr "" -#: src/lang.c:719 +#: src/lang.c:722 msgid "threads" msgstr "" -#: src/lang.c:721 +#: src/lang.c:724 msgid "Thread range" msgstr "" -#: src/lang.c:722 +#: src/lang.c:725 msgid "thread" msgstr "" -#: src/lang.c:723 +#: src/lang.c:726 #, c-format msgid "Thread %4s of %4s" msgstr "" -#: src/lang.c:724 +#: src/lang.c:727 msgid "Threading articles..." msgstr "" -#: src/lang.c:725 +#: src/lang.c:728 #, c-format msgid "Toggled word highlighting %s" msgstr "" -#: src/lang.c:726 +#: src/lang.c:729 msgid "Toggled rot13 encoding" msgstr "" -#: src/lang.c:727 +#: src/lang.c:730 #, c-format msgid "Toggled german TeX encoding %s" msgstr "" -#: src/lang.c:728 +#: src/lang.c:731 #, c-format msgid "Toggled tab-width to %d" msgstr "" -#: src/lang.c:729 +#: src/lang.c:732 #, c-format msgid "%d Trying to dotlock %s" msgstr "" -#: src/lang.c:730 +#: src/lang.c:733 #, c-format msgid "%d Trying to lock %s" msgstr "" -#: src/lang.c:731 +#: src/lang.c:734 msgid " h=help\n" msgstr "" -#: src/lang.c:733 +#: src/lang.c:736 msgid "Unlimited" msgstr "" -#: src/lang.c:734 +#: src/lang.c:737 msgid "Enter wildcard unsubscribe pattern> " msgstr "" -#: src/lang.c:735 +#: src/lang.c:738 #, c-format msgid "Error decoding %s : %s" msgstr "" -#: src/lang.c:736 +#: src/lang.c:739 msgid "No end." msgstr "" -#: src/lang.c:737 +#: src/lang.c:740 #, c-format msgid "%s successfully decoded." msgstr "" -#: src/lang.c:738 +#: src/lang.c:741 #, c-format msgid "" "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "" -#: src/lang.c:739 +#: src/lang.c:742 msgid "unread " msgstr "" -#: src/lang.c:740 +#: src/lang.c:743 #, c-format msgid "unsubscribed from %d groups" msgstr "" -#: src/lang.c:741 +#: src/lang.c:744 #, c-format msgid "Unsubscribed from %s" msgstr "" -#: src/lang.c:742 +#: src/lang.c:745 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:743 +#: src/lang.c:746 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:744 +#: src/lang.c:747 msgid "Updated" msgstr "" -#: src/lang.c:745 +#: src/lang.c:748 msgid "Updating" msgstr "" -#: src/lang.c:746 +#: src/lang.c:749 #, c-format msgid "Opening %s\n" msgstr "" -#: src/lang.c:747 +#: src/lang.c:750 msgid "No more URL's in this article" msgstr "" -#: src/lang.c:748 +#: src/lang.c:751 msgid "Use MIME display program for this message?" msgstr "" -#: src/lang.c:749 +#: src/lang.c:752 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "" -#: src/lang.c:750 +#: src/lang.c:753 msgid " -Z return status indicating if any unread news (batch mode)" msgstr "" -#: src/lang.c:751 +#: src/lang.c:754 msgid " -q don't check for new newsgroups" msgstr "" -#: src/lang.c:752 +#: src/lang.c:755 msgid " -X don't save any files on quit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:756 msgid " -d don't show newsgroup descriptions" msgstr "" -#: src/lang.c:754 +#: src/lang.c:757 msgid " -G limit get only limit articles/group" msgstr "" -#: src/lang.c:755 +#: src/lang.c:758 #, c-format msgid " -H help information about %s" msgstr "" -#: src/lang.c:756 +#: src/lang.c:759 msgid " -h this help message" msgstr "" -#: src/lang.c:757 +#: src/lang.c:760 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr "" -#: src/lang.c:758 +#: src/lang.c:761 msgid " -u update index files (batch mode)" msgstr "" -#: src/lang.c:759 +#: src/lang.c:762 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "" -#: src/lang.c:760 +#: src/lang.c:763 #, c-format msgid "" "\n" "Mail bug reports/comments to %s" msgstr "" -#: src/lang.c:761 +#: src/lang.c:764 msgid " -N mail new news to your posts (batch mode)" msgstr "" -#: src/lang.c:762 +#: src/lang.c:765 msgid " -M user mail new news to specified user (batch mode)" msgstr "" -#: src/lang.c:763 +#: src/lang.c:766 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "" -#: src/lang.c:764 +#: src/lang.c:767 msgid " -x no posting mode" msgstr "" -#: src/lang.c:765 +#: src/lang.c:768 msgid " -w post an article and exit" msgstr "" -#: src/lang.c:766 +#: src/lang.c:769 msgid " -o post all postponed articles and exit" msgstr "" -#: src/lang.c:767 +#: src/lang.c:770 msgid " -r read news remotely from default NNTP server" msgstr "" -#: src/lang.c:768 +#: src/lang.c:771 msgid " -R read news saved by -S option" msgstr "" -#: src/lang.c:769 +#: src/lang.c:772 #, c-format msgid " -s dir save news directory [default=%s]" msgstr "" -#: src/lang.c:770 +#: src/lang.c:773 msgid " -S save new news for later reading (batch mode)" msgstr "" -#: src/lang.c:771 +#: src/lang.c:774 msgid " -z start if any unread news" msgstr "" -#: src/lang.c:772 +#: src/lang.c:775 #, c-format msgid "" "A Usenet reader.\n" @@ -3150,37 +3162,42 @@ msgid "" "Usage: %s [options] [newsgroup[,...]]" msgstr "" -#: src/lang.c:773 +#: src/lang.c:776 msgid " -v verbose output for batch mode options" msgstr "" -#: src/lang.c:774 +#: src/lang.c:777 msgid " -V print version & date information" msgstr "" -#: src/lang.c:775 +#: src/lang.c:778 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "" -#: src/lang.c:776 +#: src/lang.c:779 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, c-format msgid "" "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "" -#: src/lang.c:779 +#: src/lang.c:783 #, c-format msgid "View '%s' (%s/%s)?" msgstr "" -#: src/lang.c:781 +#: src/lang.c:785 #, c-format msgid "" "\n" @@ -3188,33 +3205,33 @@ msgid "" "%-100s\n" msgstr "" -#: src/lang.c:782 +#: src/lang.c:786 msgid "" "\n" "Warning: article unchanged after editing\n" msgstr "" -#: src/lang.c:783 +#: src/lang.c:787 msgid "" "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "" -#: src/lang.c:784 +#: src/lang.c:788 msgid "" "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:" "\".\n" msgstr "" -#: src/lang.c:786 +#: src/lang.c:790 msgid "" "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "" -#: src/lang.c:789 +#: src/lang.c:793 msgid "" "Read carefully!\n" "\n" @@ -3228,7 +3245,7 @@ msgid "" "\n" msgstr "" -#: src/lang.c:793 +#: src/lang.c:797 msgid "" "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" @@ -3237,7 +3254,7 @@ msgid "" " not be encoded properly.\n" msgstr "" -#: src/lang.c:798 +#: src/lang.c:802 #, c-format msgid "" "\n" @@ -3247,7 +3264,7 @@ msgid "" "Read WHATSNEW, etc...\n" msgstr "" -#: src/lang.c:800 +#: src/lang.c:804 #, c-format msgid "" "\n" @@ -3256,7 +3273,7 @@ msgid "" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "" -#: src/lang.c:803 +#: src/lang.c:807 #, c-format msgid "" "Warning: tin wrote fewer groups to your\n" @@ -3266,19 +3283,19 @@ msgid "" "before you start tin once again!\n" msgstr "" -#: src/lang.c:807 +#: src/lang.c:811 #, c-format msgid "" "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "" -#: src/lang.c:808 +#: src/lang.c:812 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "" -#: src/lang.c:809 +#: src/lang.c:813 #, c-format msgid "" "\n" @@ -3289,49 +3306,49 @@ msgid "" " possible.\n" msgstr "" -#: src/lang.c:813 +#: src/lang.c:817 #, c-format msgid "" "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "" -#: src/lang.c:814 +#: src/lang.c:818 msgid "" "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "" -#: src/lang.c:815 +#: src/lang.c:819 msgid "Writing attributes file..." msgstr "" -#: src/lang.c:817 +#: src/lang.c:821 #, c-format msgid "%d Responses" msgstr "" -#: src/lang.c:819 +#: src/lang.c:823 #, c-format msgid "Added %d %s" msgstr "" -#: src/lang.c:820 +#: src/lang.c:824 msgid "No unsubscribed groups to show" msgstr "" -#: src/lang.c:821 +#: src/lang.c:825 msgid "Showing subscribed to groups only" msgstr "" -#: src/lang.c:822 +#: src/lang.c:826 msgid "Yes " msgstr "" -#: src/lang.c:823 +#: src/lang.c:827 msgid " You have mail\n" msgstr "" -#: src/lang.c:828 +#: src/lang.c:832 #, c-format msgid "" "\n" @@ -3344,11 +3361,11 @@ msgid "" " M)enu option.\n" msgstr "" -#: src/lang.c:839 +#: src/lang.c:843 msgid " -D debug mode 1=NNTP 2=ALL" msgstr "" -#: src/lang.c:843 +#: src/lang.c:847 msgid "" "Read carefully!\n" "\n" @@ -3365,11 +3382,11 @@ msgid "" "\n" msgstr "" -#: src/lang.c:852 +#: src/lang.c:856 msgid "toggle color" msgstr "" -#: src/lang.c:853 +#: src/lang.c:857 msgid "" "# Changing colors of several screen parts\n" "# Possible values are:\n" @@ -3394,359 +3411,359 @@ msgid "" "\n" msgstr "" -#: src/lang.c:873 +#: src/lang.c:877 msgid " -a toggle color flag" msgstr "" -#: src/lang.c:877 +#: src/lang.c:881 msgid "" "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:878 +#: src/lang.c:882 #, c-format msgid "" "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:879 +#: src/lang.c:883 #, c-format msgid "" "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "" -#: src/lang.c:881 +#: src/lang.c:885 msgid "" "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:882 +#: src/lang.c:886 #, c-format msgid "" "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:883 +#: src/lang.c:887 #, c-format msgid "" "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "" -#: src/lang.c:884 +#: src/lang.c:888 #, c-format msgid "" "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "" -#: src/lang.c:888 +#: src/lang.c:892 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "" -#: src/lang.c:889 +#: src/lang.c:893 msgid "Missing parts." msgstr "" -#: src/lang.c:890 +#: src/lang.c:894 msgid "No beginning." msgstr "" -#: src/lang.c:891 +#: src/lang.c:895 msgid "No data." msgstr "" -#: src/lang.c:892 +#: src/lang.c:896 msgid "Unknown error." msgstr "" -#: src/lang.c:895 +#: src/lang.c:899 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "" -#: src/lang.c:900 +#: src/lang.c:904 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:901 +#: src/lang.c:905 msgid "Reading mailgroups file... " msgstr "" -#: src/lang.c:905 +#: src/lang.c:909 msgid "perform PGP operations on article" msgstr "" -#: src/lang.c:906 +#: src/lang.c:910 msgid "Add key(s) to public keyring?" msgstr "" -#: src/lang.c:907 +#: src/lang.c:911 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "" -#: src/lang.c:908 +#: src/lang.c:912 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "" -#: src/lang.c:909 +#: src/lang.c:913 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "" -#: src/lang.c:910 +#: src/lang.c:914 msgid "Article not signed and no public keys found" msgstr "" -#: src/lang.c:912 +#: src/lang.c:916 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:913 +#: src/lang.c:917 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:914 +#: src/lang.c:918 #, c-format msgid "" "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:916 +#: src/lang.c:920 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:917 +#: src/lang.c:921 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "" -#: src/lang.c:918 +#: src/lang.c:922 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:922 +#: src/lang.c:926 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:923 +#: src/lang.c:927 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "" -#: src/lang.c:924 +#: src/lang.c:928 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:926 +#: src/lang.c:930 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:927 +#: src/lang.c:931 #, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "" -#: src/lang.c:928 +#: src/lang.c:932 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "" -#: src/lang.c:937 +#: src/lang.c:941 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:938 +#: src/lang.c:942 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:939 +#: src/lang.c:943 msgid "Cannot find NNTP server name" msgstr "" -#: src/lang.c:940 +#: src/lang.c:944 #, c-format msgid "Connecting to %s:%d..." msgstr "" -#: src/lang.c:941 +#: src/lang.c:945 msgid "Disconnecting from server...\n" msgstr "" -#: src/lang.c:942 +#: src/lang.c:946 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "" -#: src/lang.c:943 +#: src/lang.c:947 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "" -#: src/lang.c:944 +#: src/lang.c:948 msgid "205 Closing connection" msgstr "" -#: src/lang.c:945 +#: src/lang.c:949 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "" -#: src/lang.c:946 +#: src/lang.c:950 msgid "Connection to news server has timed out. Reconnect?" msgstr "" -#: src/lang.c:947 +#: src/lang.c:951 #, c-format msgid "" "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "" -#: src/lang.c:948 +#: src/lang.c:952 msgid " -A force authentication on connect" msgstr "" -#: src/lang.c:949 +#: src/lang.c:953 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "" -#: src/lang.c:950 +#: src/lang.c:954 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "" -#: src/lang.c:951 +#: src/lang.c:955 msgid " -Q quick start. Same as -nqd" msgstr "" -#: src/lang.c:952 +#: src/lang.c:956 msgid " -l use only LIST instead of GROUP (-n) command" msgstr "" -#: src/lang.c:953 +#: src/lang.c:957 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "" -#: src/lang.c:955 +#: src/lang.c:959 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "" -#: src/lang.c:958 +#: src/lang.c:962 msgid "" "\n" "socket or connect problem\n" msgstr "" -#: src/lang.c:960 +#: src/lang.c:964 #, c-format msgid "" "\n" "Connection to %s: " msgstr "" -#: src/lang.c:961 +#: src/lang.c:965 msgid "Giving up...\n" msgstr "" -#: src/lang.c:964 +#: src/lang.c:968 msgid "" "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "" -#: src/lang.c:967 +#: src/lang.c:971 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "" -#: src/lang.c:970 +#: src/lang.c:974 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "" -#: src/lang.c:973 +#: src/lang.c:977 msgid " -Q quick start. Same as -qd" msgstr "" -#: src/lang.c:974 +#: src/lang.c:978 msgid " -l read only active file instead of scanning spool (-n) command" msgstr "" -#: src/lang.c:975 +#: src/lang.c:979 msgid " -n only read subscribed .newsrc groups from spool" msgstr "" -#: src/lang.c:976 +#: src/lang.c:980 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "" -#: src/lang.c:980 +#: src/lang.c:984 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "" -#: src/lang.c:981 +#: src/lang.c:985 msgid "It worked! Should I always use my built in inews from now on?" msgstr "" -#: src/lang.c:985 +#: src/lang.c:989 #, c-format msgid "%d %s printed" msgstr "" -#: src/lang.c:986 +#: src/lang.c:990 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "" -#: src/lang.c:987 +#: src/lang.c:991 msgid "Print" msgstr "" -#: src/lang.c:988 +#: src/lang.c:992 msgid "Printing..." msgstr "" -#: src/lang.c:992 +#: src/lang.c:996 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "" -#: src/lang.c:993 +#: src/lang.c:997 msgid "No command" msgstr "" -#: src/lang.c:994 +#: src/lang.c:998 msgid "Pipe" msgstr "" -#: src/lang.c:995 +#: src/lang.c:999 #, c-format msgid "Pipe to command [%.*s]> " msgstr "" -#: src/lang.c:996 +#: src/lang.c:1000 msgid "Piping..." msgstr "" -#: src/lang.c:998 +#: src/lang.c:1002 msgid "Piping not enabled." msgstr "" -#: src/lang.c:1002 +#: src/lang.c:1006 #, c-format msgid "" "\n" @@ -3756,7 +3773,7 @@ msgid "" " newsgroup names.\n" msgstr "" -#: src/lang.c:1007 +#: src/lang.c:1011 #, c-format msgid "" "\n" @@ -3765,7 +3782,7 @@ msgid "" " Please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1012 +#: src/lang.c:1016 #, c-format msgid "" "\n" @@ -3774,14 +3791,14 @@ msgid "" " To avoid trouble please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1016 +#: src/lang.c:1020 #, c-format msgid "" "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "" -#: src/lang.c:1021 +#: src/lang.c:1025 msgid "" "\n" " If your article contains quoted text please take some time to pare it " @@ -3803,509 +3820,529 @@ msgid "" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1038 msgid "shell escape" msgstr "" -#: src/lang.c:1035 +#: src/lang.c:1039 #, c-format msgid "Shell Command (%s)" msgstr "" -#: src/lang.c:1036 +#: src/lang.c:1040 #, c-format msgid "Enter shell command [%s]> " msgstr "" -#: src/lang.c:1040 +#: src/lang.c:1044 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "" -#: src/lang.c:1044 +#: src/lang.c:1048 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "" -#: src/lang.c:1046 +#: src/lang.c:1050 #, c-format msgid "Group %.*s..." msgstr "" -#: src/lang.c:1050 +#: src/lang.c:1054 msgid "Server unavailable\n" msgstr "" -#: src/lang.c:1056 +#: src/lang.c:1060 #, c-format msgid "" "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "" -#: src/lang.c:1057 +#: src/lang.c:1061 #, c-format msgid "" "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1059 +#: src/lang.c:1063 #, c-format msgid "" "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1060 +#: src/lang.c:1064 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1064 +#: src/lang.c:1068 #, c-format msgid "" "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1065 +#: src/lang.c:1069 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1067 +#: src/lang.c:1071 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1068 +#: src/lang.c:1072 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1074 +#: src/lang.c:1078 msgid "Terminal does not support color" msgstr "" -#: src/lang.c:1079 +#: src/lang.c:1083 #, c-format msgid "Trying %s" msgstr "" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 #: src/refs.c:296 msgid "None" msgstr "" -#: src/lang.c:1094 +#: src/lang.c:1098 msgid "Subject" msgstr "" -#: src/lang.c:1095 +#: src/lang.c:1099 msgid "References" msgstr "" -#: src/lang.c:1096 +#: src/lang.c:1100 msgid "Both Subject and References" msgstr "" -#: src/lang.c:1097 +#: src/lang.c:1101 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 msgid "No" msgstr "" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 msgid "Yes" msgstr "" -#: src/lang.c:1112 +#: src/lang.c:1116 msgid "Hide All" msgstr "" -#: src/lang.c:1120 +#: src/lang.c:1124 msgid "Address" msgstr "" -#: src/lang.c:1121 +#: src/lang.c:1125 msgid "Full Name" msgstr "" -#: src/lang.c:1122 +#: src/lang.c:1126 msgid "Address and Name" msgstr "" -#: src/lang.c:1129 +#: src/lang.c:1133 msgid "Max" msgstr "" -#: src/lang.c:1130 +#: src/lang.c:1134 msgid "Sum" msgstr "" -#: src/lang.c:1131 +#: src/lang.c:1135 msgid "Average" msgstr "" -#: src/lang.c:1136 +#: src/lang.c:1140 msgid "Lines" msgstr "" -#: src/lang.c:1137 +#: src/lang.c:1141 msgid "Score" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1142 msgid "Lines & Score" msgstr "" -#: src/lang.c:1147 +#: src/lang.c:1151 msgid "Black" msgstr "" -#: src/lang.c:1148 +#: src/lang.c:1152 msgid "Red" msgstr "" -#: src/lang.c:1149 +#: src/lang.c:1153 msgid "Green" msgstr "" -#: src/lang.c:1150 +#: src/lang.c:1154 msgid "Brown" msgstr "" -#: src/lang.c:1151 +#: src/lang.c:1155 msgid "Blue" msgstr "" -#: src/lang.c:1152 +#: src/lang.c:1156 msgid "Pink" msgstr "" -#: src/lang.c:1153 +#: src/lang.c:1157 msgid "Cyan" msgstr "" -#: src/lang.c:1154 +#: src/lang.c:1158 msgid "White" msgstr "" -#: src/lang.c:1155 +#: src/lang.c:1159 msgid "Gray" msgstr "" -#: src/lang.c:1156 +#: src/lang.c:1160 msgid "Light Red" msgstr "" -#: src/lang.c:1157 +#: src/lang.c:1161 msgid "Light Green" msgstr "" -#: src/lang.c:1158 +#: src/lang.c:1162 msgid "Yellow" msgstr "" -#: src/lang.c:1159 +#: src/lang.c:1163 msgid "Light Blue" msgstr "" -#: src/lang.c:1160 +#: src/lang.c:1164 msgid "Light Pink" msgstr "" -#: src/lang.c:1161 +#: src/lang.c:1165 msgid "Light Cyan" msgstr "" -#: src/lang.c:1162 +#: src/lang.c:1166 msgid "Light White" msgstr "" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 msgid "Nothing" msgstr "" -#: src/lang.c:1171 +#: src/lang.c:1175 msgid "Mark" msgstr "" -#: src/lang.c:1172 +#: src/lang.c:1176 msgid "Space" msgstr "" -#: src/lang.c:1179 +#: src/lang.c:1183 msgid "Normal" msgstr "" -#: src/lang.c:1180 +#: src/lang.c:1184 msgid "Best highlighting" msgstr "" -#: src/lang.c:1181 +#: src/lang.c:1185 msgid "Underline" msgstr "" -#: src/lang.c:1182 +#: src/lang.c:1186 msgid "Reverse video" msgstr "" -#: src/lang.c:1183 +#: src/lang.c:1187 msgid "Blinking" msgstr "" -#: src/lang.c:1184 +#: src/lang.c:1188 msgid "Half bright" msgstr "" -#: src/lang.c:1185 +#: src/lang.c:1189 msgid "Bold" msgstr "" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 msgid "none" msgstr "" -#: src/lang.c:1191 +#: src/lang.c:1195 msgid "commands" msgstr "" -#: src/lang.c:1192 +#: src/lang.c:1196 msgid "select" msgstr "" -#: src/lang.c:1194 +#: src/lang.c:1198 msgid "commands & quit" msgstr "" -#: src/lang.c:1195 +#: src/lang.c:1199 msgid "commands & select" msgstr "" -#: src/lang.c:1196 +#: src/lang.c:1200 msgid "quit & select" msgstr "" -#: src/lang.c:1197 +#: src/lang.c:1201 msgid "commands & quit & select" msgstr "" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 msgid "Shell archive" msgstr "" -#: src/lang.c:1228 +#: src/lang.c:1240 msgid "Subject: (descending)" msgstr "" -#: src/lang.c:1229 +#: src/lang.c:1241 msgid "Subject: (ascending)" msgstr "" -#: src/lang.c:1230 +#: src/lang.c:1242 msgid "From: (descending)" msgstr "" -#: src/lang.c:1231 +#: src/lang.c:1243 msgid "From: (ascending)" msgstr "" -#: src/lang.c:1232 +#: src/lang.c:1244 msgid "Date: (descending)" msgstr "" -#: src/lang.c:1233 +#: src/lang.c:1245 msgid "Date: (ascending)" msgstr "" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 msgid "Score (descending)" msgstr "" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 msgid "Score (ascending)" msgstr "" -#: src/lang.c:1236 +#: src/lang.c:1248 msgid "Lines: (descending)" msgstr "" -#: src/lang.c:1237 +#: src/lang.c:1249 msgid "Lines: (ascending)" msgstr "" -#: src/lang.c:1248 +#: src/lang.c:1256 +msgid "Last posting date (descending)" +msgstr "" + +#: src/lang.c:1257 +msgid "Last posting date (ascending)" +msgstr "" + +#: src/lang.c:1262 msgid "Always Keep" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1263 msgid "Always Remove" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1264 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1255 +#: src/lang.c:1269 msgid "Kill only unread arts" msgstr "" -#: src/lang.c:1256 +#: src/lang.c:1270 msgid "Kill all arts & show with K" msgstr "" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 msgid "Kill all arts and never show" msgstr "" -#: src/lang.c:1262 +#: src/lang.c:1276 msgid "Nothing special" msgstr "" -#: src/lang.c:1263 +#: src/lang.c:1277 msgid "Compress quotes" msgstr "" -#: src/lang.c:1264 +#: src/lang.c:1278 msgid "Quote signatures" msgstr "" -#: src/lang.c:1265 +#: src/lang.c:1279 msgid "Compress quotes, quote sigs" msgstr "" -#: src/lang.c:1266 +#: src/lang.c:1280 msgid "Quote empty lines" msgstr "" -#: src/lang.c:1267 +#: src/lang.c:1281 msgid "Compress quotes, quote empty lines" msgstr "" -#: src/lang.c:1268 +#: src/lang.c:1282 msgid "Quote sigs & empty lines" msgstr "" -#: src/lang.c:1269 +#: src/lang.c:1283 msgid "Comp. q., quote sigs & empty lines" msgstr "" -#: src/lang.c:1307 +#: src/lang.c:1321 msgid "no" msgstr "" -#: src/lang.c:1308 +#: src/lang.c:1322 msgid "with headers" msgstr "" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 msgid "Display Options" msgstr "" -#: src/lang.c:1337 +#: src/lang.c:1351 msgid "Color Options" msgstr "" -#: src/lang.c:1344 +#: src/lang.c:1358 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1350 +#: src/lang.c:1364 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1356 +#: src/lang.c:1370 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1362 +#: src/lang.c:1376 msgid "Expert Options" msgstr "" -#: src/lang.c:1368 +#: src/lang.c:1382 msgid "Filtering Options" msgstr "" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 -#: src/lang.c:1486 src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 -#: src/lang.c:1597 src/lang.c:1767 src/lang.c:1773 src/lang.c:1779 -#: src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 src/lang.c:1858 -#: src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 -#: src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 -#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 -#: src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 -#: src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 -#: src/lang.c:2072 src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 -#: src/lang.c:2113 src/lang.c:2147 src/lang.c:2200 src/lang.c:2207 -#: src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 src/lang.c:2308 -#: src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 +#: src/lang.c:1502 src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 +#: src/lang.c:1604 src/lang.c:1788 src/lang.c:1794 src/lang.c:1800 +#: src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 src/lang.c:1879 +#: src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 +#: src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 +#: src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 +#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 +#: src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 +#: src/lang.c:2093 src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 +#: src/lang.c:2134 src/lang.c:2168 src/lang.c:2221 src/lang.c:2228 +#: src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 src/lang.c:2329 +#: src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1374 +#: src/lang.c:1388 msgid "Show mini menu & posting etiquette" msgstr "" -#: src/lang.c:1375 +#: src/lang.c:1389 msgid "" "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" msgstr "" -#: src/lang.c:1380 +#: src/lang.c:1394 msgid "Show short description for each newsgroup. toggles & sets." msgstr "" -#: src/lang.c:1381 +#: src/lang.c:1395 msgid "Show description of each newsgroup" msgstr "" -#: src/lang.c:1382 +#: src/lang.c:1396 msgid "" "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "" -#: src/lang.c:1387 +#: src/lang.c:1401 msgid "" "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "" -#: src/lang.c:1388 +#: src/lang.c:1402 msgid "In group menu, show author by" msgstr "" -#: src/lang.c:1389 +#: src/lang.c:1403 msgid "" "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" @@ -4315,31 +4352,31 @@ msgid "" "# 3 = both\n" msgstr "" -#: src/lang.c:1398 +#: src/lang.c:1412 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "" -#: src/lang.c:1399 +#: src/lang.c:1413 msgid "Draw -> instead of highlighted bar" msgstr "" -#: src/lang.c:1400 +#: src/lang.c:1414 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "" -#: src/lang.c:1405 +#: src/lang.c:1419 msgid "Use inverse video for page headers" msgstr "" -#: src/lang.c:1406 +#: src/lang.c:1420 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "" -#: src/lang.c:1411 +#: src/lang.c:1425 msgid "Thread articles by" msgstr "" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "" "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -4351,15 +4388,15 @@ msgid "" "# 5 = Percentage Match\n" msgstr "" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "" "# Thread percentage match...\n" @@ -4374,11 +4411,11 @@ msgid "" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 msgid "Score of a thread" msgstr "" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "" "# Thread score\n" "# Possible values are (the default is marked with *):\n" @@ -4387,16 +4424,16 @@ msgid "" "# 2 = average\n" msgstr "" -#: src/lang.c:1446 +#: src/lang.c:1460 msgid "" "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "" -#: src/lang.c:1447 +#: src/lang.c:1461 msgid "Sort articles by" msgstr "" -#: src/lang.c:1448 +#: src/lang.c:1462 msgid "" "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -4413,61 +4450,63 @@ msgid "" "# 10 = Lines ascending\n" msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1478 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1479 msgid "Sort threads by" msgstr "" -#: src/lang.c:1466 +#: src/lang.c:1480 msgid "" "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" +"# 3 = Last posting date descending\n" +"# 4 = Last posting date ascending\n" msgstr "" -#: src/lang.c:1474 +#: src/lang.c:1490 msgid "" "Put cursor at first/last unread art in groups. toggles & sets." msgstr "" -#: src/lang.c:1475 +#: src/lang.c:1491 msgid "Goto first unread article in group" msgstr "" -#: src/lang.c:1476 +#: src/lang.c:1492 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "" -#: src/lang.c:1480 +#: src/lang.c:1496 msgid "Show all articles or only unread articles. toggles & sets." msgstr "" -#: src/lang.c:1481 +#: src/lang.c:1497 msgid "Show only unread articles" msgstr "" -#: src/lang.c:1482 +#: src/lang.c:1498 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "" -#: src/lang.c:1487 +#: src/lang.c:1503 msgid "Show only groups with unread arts" msgstr "" -#: src/lang.c:1488 +#: src/lang.c:1504 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1509 msgid "Filter which articles" msgstr "" -#: src/lang.c:1494 +#: src/lang.c:1510 msgid "" "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" @@ -4476,203 +4515,177 @@ msgid "" "# 2 = kill all articles and never show them\n" msgstr "" -#: src/lang.c:1503 -msgid "Tab goes to next unread article" -msgstr "" - -#: src/lang.c:1504 -msgid "" -"# If ON the TAB command will go to next unread article at article viewer " -"level\n" -msgstr "" - -#: src/lang.c:1508 -msgid "" -"Scrolling with past the end of an art. jumps to the next unread one." -msgstr "" - -#: src/lang.c:1509 -msgid "Space goes to next unread article" -msgstr "" - -#: src/lang.c:1510 -msgid "" -"# If ON the SPACE command will go to next unread article at article viewer\n" -"# level when the end of the article is reached (rn-style pager)\n" -msgstr "" - -#: src/lang.c:1515 -msgid "" -"Scrolling with / past the end of an art. jumps to the unread one." -msgstr "" - -#: src/lang.c:1516 -msgid "PgDn goes to next unread article" +#: src/lang.c:1519 +msgid "Go to the next unread article with" msgstr "" -#: src/lang.c:1517 +#: src/lang.c:1520 msgid "" -"# If ON the PGDN or DOWN command will go to next unread article when\n" -"# pressed at end of message\n" +"# Go to the unread article with folling key(s)\n" +"# Possible values are (the default is marked with *):\n" +"# 0 = nothing\n" +"# 1 = PAGE DOWN\n" +"# * 2 = TAB\n" +"# 3 = PAGE DOWN or TAB\n" msgstr "" -#: src/lang.c:1523 +#: src/lang.c:1530 msgid "List thread using right arrow key" msgstr "" -#: src/lang.c:1524 +#: src/lang.c:1531 msgid "" "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1528 +#: src/lang.c:1535 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "" -#: src/lang.c:1529 +#: src/lang.c:1536 msgid "Character to show deleted articles" msgstr "" -#: src/lang.c:1530 +#: src/lang.c:1537 msgid "" "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1542 msgid "" "Enter character to indicate articles in a range. sets, cancels." msgstr "" -#: src/lang.c:1536 +#: src/lang.c:1543 msgid "Character to show inrange articles" msgstr "" -#: src/lang.c:1537 +#: src/lang.c:1544 msgid "" "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1549 msgid "" "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1543 +#: src/lang.c:1550 msgid "Character to show returning arts" msgstr "" -#: src/lang.c:1544 +#: src/lang.c:1551 msgid "" "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1549 +#: src/lang.c:1556 msgid "" "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1550 +#: src/lang.c:1557 msgid "Character to show selected articles" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1558 msgid "" "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1556 +#: src/lang.c:1563 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1557 +#: src/lang.c:1564 msgid "Character to show recent articles" msgstr "" -#: src/lang.c:1558 +#: src/lang.c:1565 msgid "" "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1563 +#: src/lang.c:1570 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1564 +#: src/lang.c:1571 msgid "Character to show unread articles" msgstr "" -#: src/lang.c:1565 +#: src/lang.c:1572 msgid "" "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1577 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1571 +#: src/lang.c:1578 msgid "Character to show read articles" msgstr "" -#: src/lang.c:1572 +#: src/lang.c:1579 msgid "" "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1577 +#: src/lang.c:1584 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1578 +#: src/lang.c:1585 msgid "Character to show killed articles" msgstr "" -#: src/lang.c:1579 +#: src/lang.c:1586 msgid "" "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1584 +#: src/lang.c:1591 msgid "" "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1585 +#: src/lang.c:1592 msgid "Character to show readselected arts" msgstr "" -#: src/lang.c:1586 +#: src/lang.c:1593 msgid "" "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" msgstr "" -#: src/lang.c:1591 +#: src/lang.c:1598 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1592 +#: src/lang.c:1599 msgid "Max. length of group names shown" msgstr "" -#: src/lang.c:1593 +#: src/lang.c:1600 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1598 +#: src/lang.c:1605 msgid "Show lines/score in listings" msgstr "" -#: src/lang.c:1599 +#: src/lang.c:1606 msgid "" "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" @@ -4682,17 +4695,17 @@ msgid "" "# 3 = lines & score\n" msgstr "" -#: src/lang.c:1608 +#: src/lang.c:1615 msgid "" "0 = full page scrolling, -1 = show previous last line as first on next page, " "-2 = half page" msgstr "" -#: src/lang.c:1609 +#: src/lang.c:1616 msgid "Number of lines to scroll in pager" msgstr "" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "" "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" @@ -4703,28 +4716,28 @@ msgid "" "# 2 or greater = scroll by 2 or more lines (only in the pager)\n" msgstr "" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1628 msgid "Display signatures" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "" "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "" "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" @@ -4736,30 +4749,30 @@ msgid "" "# be folded into a tag line.\n" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "" "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "" "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "" "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" @@ -4769,11 +4782,11 @@ msgid "" "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1656 +#: src/lang.c:1663 msgid "Do not display these header fields" msgstr "" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "" "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" @@ -4785,163 +4798,191 @@ msgid "" "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "" "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "" "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "" "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "" "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "" "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "" "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1716 +#: src/lang.c:1723 msgid "Regex used to highlight -strokes-" msgstr "" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "" "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "" "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "" "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "" "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "" +"# A regular expression that tin will use to find the begin of\n" +"# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +msgid "" +"# A regular expression that tin will use to find the end of\n" +"# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "" "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "" "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" @@ -4950,125 +4991,125 @@ msgid "" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "" "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1786 +#: src/lang.c:1807 msgid "'Mark article read' ignores tags" msgstr "" -#: src/lang.c:1787 +#: src/lang.c:1808 msgid "" "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1812 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1792 +#: src/lang.c:1813 msgid "Program that opens URL's" msgstr "" -#: src/lang.c:1793 +#: src/lang.c:1814 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1798 +#: src/lang.c:1819 msgid "Use mouse in xterm" msgstr "" -#: src/lang.c:1799 -msgid "# If ON enable mouse key support on xterm terminals\n" +#: src/lang.c:1820 +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "" -#: src/lang.c:1805 +#: src/lang.c:1826 msgid "Use scroll keys on keypad" msgstr "" -#: src/lang.c:1806 +#: src/lang.c:1827 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1811 +#: src/lang.c:1832 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1812 +#: src/lang.c:1833 msgid "Number of articles to get" msgstr "" -#: src/lang.c:1813 +#: src/lang.c:1834 msgid "" "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "" -#: src/lang.c:1818 +#: src/lang.c:1839 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1819 +#: src/lang.c:1840 msgid "Article recentness time limit" msgstr "" -#: src/lang.c:1820 +#: src/lang.c:1841 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1824 +#: src/lang.c:1845 msgid "" "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1825 +#: src/lang.c:1846 msgid "Wildcard matching" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "" "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" @@ -5076,307 +5117,307 @@ msgid "" "# 1 = regex\n" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1854 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1834 +#: src/lang.c:1855 msgid "Score limit (kill)" msgstr "" -#: src/lang.c:1835 +#: src/lang.c:1856 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1860 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1840 +#: src/lang.c:1861 msgid "Default score to kill articles" msgstr "" -#: src/lang.c:1841 +#: src/lang.c:1862 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1866 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1846 +#: src/lang.c:1867 msgid "Score limit (select)" msgstr "" -#: src/lang.c:1847 +#: src/lang.c:1868 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1872 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1852 +#: src/lang.c:1873 msgid "Default score to select articles" msgstr "" -#: src/lang.c:1853 +#: src/lang.c:1874 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1859 +#: src/lang.c:1880 msgid "Use slrnface to show ''X-Face:''s" msgstr "" -#: src/lang.c:1860 +#: src/lang.c:1881 msgid "" "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" msgstr "" -#: src/lang.c:1868 +#: src/lang.c:1889 msgid "Use ANSI color" msgstr "" -#: src/lang.c:1869 +#: src/lang.c:1890 msgid "# If ON using ANSI-color\n" msgstr "" -#: src/lang.c:1874 +#: src/lang.c:1895 msgid "Standard foreground color" msgstr "" -#: src/lang.c:1875 +#: src/lang.c:1896 msgid "" "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1881 +#: src/lang.c:1902 msgid "Standard background color" msgstr "" -#: src/lang.c:1882 +#: src/lang.c:1903 msgid "" "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1888 +#: src/lang.c:1909 msgid "Color for inverse text (background)" msgstr "" -#: src/lang.c:1889 +#: src/lang.c:1910 msgid "" "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1895 +#: src/lang.c:1916 msgid "Color for inverse text (foreground)" msgstr "" -#: src/lang.c:1896 +#: src/lang.c:1917 msgid "" "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "" -#: src/lang.c:1902 +#: src/lang.c:1923 msgid "Color of text lines" msgstr "" -#: src/lang.c:1903 +#: src/lang.c:1924 msgid "" "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1909 +#: src/lang.c:1930 msgid "Color of mini help menu" msgstr "" -#: src/lang.c:1910 +#: src/lang.c:1931 msgid "" "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "" -#: src/lang.c:1916 +#: src/lang.c:1937 msgid "Color of help text" msgstr "" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "" "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1923 +#: src/lang.c:1944 msgid "Color of status messages" msgstr "" -#: src/lang.c:1924 +#: src/lang.c:1945 msgid "" "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "" -#: src/lang.c:1930 +#: src/lang.c:1951 msgid "Color of quoted lines" msgstr "" -#: src/lang.c:1931 +#: src/lang.c:1952 msgid "" "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1937 +#: src/lang.c:1958 msgid "Color of twice quoted line" msgstr "" -#: src/lang.c:1938 +#: src/lang.c:1959 msgid "" "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "" -#: src/lang.c:1944 +#: src/lang.c:1965 msgid "Color of =>3 times quoted line" msgstr "" -#: src/lang.c:1945 +#: src/lang.c:1966 msgid "" "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1951 +#: src/lang.c:1972 msgid "Color of article header lines" msgstr "" -#: src/lang.c:1952 +#: src/lang.c:1973 msgid "" "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1958 +#: src/lang.c:1979 msgid "Color of actual news header fields" msgstr "" -#: src/lang.c:1959 +#: src/lang.c:1980 msgid "" "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "" -#: src/lang.c:1965 +#: src/lang.c:1986 msgid "Color of article subject lines" msgstr "" -#: src/lang.c:1966 +#: src/lang.c:1987 msgid "" "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "" -#: src/lang.c:1972 +#: src/lang.c:1993 msgid "Color of response counter" msgstr "" -#: src/lang.c:1973 +#: src/lang.c:1994 msgid "" "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1979 +#: src/lang.c:2000 msgid "Color of sender (From:)" msgstr "" -#: src/lang.c:1980 +#: src/lang.c:2001 msgid "" "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "" -#: src/lang.c:1986 +#: src/lang.c:2007 msgid "Color of help/mail sign" msgstr "" -#: src/lang.c:1987 +#: src/lang.c:2008 msgid "" "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:1993 +#: src/lang.c:2014 msgid "Color of signatures" msgstr "" -#: src/lang.c:1994 +#: src/lang.c:2015 msgid "" "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "" -#: src/lang.c:2000 +#: src/lang.c:2021 msgid "Color of highlighted URLs" msgstr "" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "" "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2028 msgid "Color of highlighting with *stars*" msgstr "" -#: src/lang.c:2008 +#: src/lang.c:2029 msgid "" "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "" -#: src/lang.c:2014 +#: src/lang.c:2035 msgid "Color of highlighting with _dash_" msgstr "" -#: src/lang.c:2015 +#: src/lang.c:2036 msgid "" "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "" -#: src/lang.c:2021 +#: src/lang.c:2042 msgid "Color of highlighting with /slash/" msgstr "" -#: src/lang.c:2022 +#: src/lang.c:2043 msgid "" "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "" -#: src/lang.c:2028 +#: src/lang.c:2049 msgid "Color of highlighting with -stroke-" msgstr "" -#: src/lang.c:2029 +#: src/lang.c:2050 msgid "" "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "" -#: src/lang.c:2036 +#: src/lang.c:2057 msgid "Attr. of highlighting with *stars*" msgstr "" -#: src/lang.c:2037 +#: src/lang.c:2058 msgid "" "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" @@ -5392,57 +5433,57 @@ msgid "" "# Default: 6 (bold)\n" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2073 msgid "Attr. of highlighting with _dash_" msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "" "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2080 msgid "Attr. of highlighting with /slash/" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2081 msgid "" "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "" -#: src/lang.c:2066 +#: src/lang.c:2087 msgid "Attr. of highlighting with -stroke-" msgstr "" -#: src/lang.c:2067 +#: src/lang.c:2088 msgid "" "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "" -#: src/lang.c:2073 +#: src/lang.c:2094 msgid "URL highlighting in message body" msgstr "" -#: src/lang.c:2074 +#: src/lang.c:2095 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2100 msgid "Word highlighting in message body" msgstr "" -#: src/lang.c:2080 +#: src/lang.c:2101 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2106 msgid "What to display instead of mark" msgstr "" -#: src/lang.c:2086 +#: src/lang.c:2107 msgid "" "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" @@ -5452,56 +5493,56 @@ msgid "" "# * 2 = print a space instead\n" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2116 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:2096 +#: src/lang.c:2117 msgid "Page line wrap column" msgstr "" -#: src/lang.c:2097 +#: src/lang.c:2118 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:2102 +#: src/lang.c:2123 msgid "Wrap around threads on next unread" msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2124 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:2107 +#: src/lang.c:2128 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:2108 +#: src/lang.c:2129 msgid "Mail address (and fullname)" msgstr "" -#: src/lang.c:2109 +#: src/lang.c:2130 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "" "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "" "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" @@ -5510,52 +5551,52 @@ msgid "" "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "" "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2163 #, c-format msgid "" "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2169 msgid "Quoting behavior" msgstr "" -#: src/lang.c:2149 +#: src/lang.c:2170 msgid "" "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" @@ -5569,16 +5610,16 @@ msgid "" "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 msgid "" "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2163 +#: src/lang.c:2184 msgid "Quote line when following up" msgstr "" -#: src/lang.c:2164 +#: src/lang.c:2185 #, c-format msgid "" "# Format of quote line when mailing/posting/following-up an article\n" @@ -5586,36 +5627,36 @@ msgid "" "# %%N Full Name %%C First Name %%I Initials\n" msgstr "" -#: src/lang.c:2171 +#: src/lang.c:2192 msgid "Quote line when cross-posting" msgstr "" -#: src/lang.c:2177 +#: src/lang.c:2198 msgid "Quote line when mailing" msgstr "" -#: src/lang.c:2182 +#: src/lang.c:2203 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2183 +#: src/lang.c:2204 msgid "Insert 'User-Agent:'-header" msgstr "" -#: src/lang.c:2184 +#: src/lang.c:2205 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2189 +#: src/lang.c:2210 msgid "" "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2212 msgid "" "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" @@ -5625,27 +5666,27 @@ msgid "" "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2201 +#: src/lang.c:2222 msgid "MM_NETWORK_CHARSET" msgstr "" -#: src/lang.c:2202 +#: src/lang.c:2223 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2208 +#: src/lang.c:2229 msgid "Mailbox format" msgstr "" -#: src/lang.c:2209 +#: src/lang.c:2230 msgid "# Format of the mailbox.\n" msgstr "" -#: src/lang.c:2214 +#: src/lang.c:2235 msgid "MIME encoding in news messages" msgstr "" -#: src/lang.c:2215 +#: src/lang.c:2236 msgid "" "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" @@ -5654,15 +5695,15 @@ msgid "" "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2245 msgid "Use 8bit characters in news headers" msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2246 msgid "" "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -5670,28 +5711,28 @@ msgid "" "# parameter unless post_mime_encoding is 8bit as well.\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2253 msgid "" "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2254 msgid "View post-processed files" msgstr "" -#: src/lang.c:2234 +#: src/lang.c:2255 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2260 msgid "MIME encoding in mail messages" msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2266 msgid "Use 8bit characters in mail headers" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2267 msgid "" "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -5702,173 +5743,173 @@ msgid "" "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2256 +#: src/lang.c:2277 msgid "Strip blanks from ends of lines" msgstr "" -#: src/lang.c:2257 +#: src/lang.c:2278 msgid "" "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2262 +#: src/lang.c:2283 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2263 +#: src/lang.c:2284 msgid "Transliteration" msgstr "" -#: src/lang.c:2264 +#: src/lang.c:2285 msgid "" "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" "# through one or several similarly looking characters.\n" msgstr "" -#: src/lang.c:2271 +#: src/lang.c:2292 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2272 +#: src/lang.c:2293 msgid "Send you a cc automatically" msgstr "" -#: src/lang.c:2273 +#: src/lang.c:2294 msgid "" "# If ON automatically put your name in the Cc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2298 msgid "" "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2278 +#: src/lang.c:2299 msgid "Send you a blind cc automatically" msgstr "" -#: src/lang.c:2279 +#: src/lang.c:2300 msgid "" "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2304 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2284 +#: src/lang.c:2305 msgid "Spamtrap warning address parts" msgstr "" -#: src/lang.c:2285 +#: src/lang.c:2306 msgid "" "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2311 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2291 +#: src/lang.c:2312 msgid "No. of days a filter entry is valid" msgstr "" -#: src/lang.c:2292 +#: src/lang.c:2313 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2297 +#: src/lang.c:2318 msgid "Add posted articles to filter" msgstr "" -#: src/lang.c:2298 +#: src/lang.c:2319 msgid "" "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2323 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2303 +#: src/lang.c:2324 msgid "Mail directory" msgstr "" -#: src/lang.c:2304 +#: src/lang.c:2325 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2309 +#: src/lang.c:2330 msgid "Save articles in batch mode (-S)" msgstr "" -#: src/lang.c:2310 +#: src/lang.c:2331 msgid "" "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "" -#: src/lang.c:2315 +#: src/lang.c:2336 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2316 +#: src/lang.c:2337 msgid "Directory to save arts/threads in" msgstr "" -#: src/lang.c:2317 +#: src/lang.c:2338 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2321 +#: src/lang.c:2342 msgid "" "Auto save article/thread by Archive-name: header. toggles & " "sets." msgstr "" -#: src/lang.c:2322 +#: src/lang.c:2343 msgid "Use Archive-name: header for save" msgstr "" -#: src/lang.c:2323 +#: src/lang.c:2344 msgid "" "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "" -#: src/lang.c:2328 +#: src/lang.c:2349 msgid "" "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2329 +#: src/lang.c:2350 msgid "Mark saved articles/threads as read" msgstr "" -#: src/lang.c:2330 +#: src/lang.c:2351 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2334 +#: src/lang.c:2355 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2335 +#: src/lang.c:2356 msgid "Post process saved articles" msgstr "" -#: src/lang.c:2336 +#: src/lang.c:2357 msgid "" "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" @@ -5877,107 +5918,107 @@ msgid "" "# 2 = yes\n" msgstr "" -#: src/lang.c:2345 +#: src/lang.c:2366 msgid "Process only unread articles" msgstr "" -#: src/lang.c:2346 +#: src/lang.c:2367 msgid "" "# If ON only save/print/pipe/mail unread articles (tagged articles " "excepted)\n" msgstr "" -#: src/lang.c:2351 +#: src/lang.c:2372 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2352 +#: src/lang.c:2373 msgid "Print all headers when printing" msgstr "" -#: src/lang.c:2353 +#: src/lang.c:2374 msgid "" "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2357 +#: src/lang.c:2378 msgid "" "The printer program with options that is to be used to print articles/" "threads." msgstr "" -#: src/lang.c:2358 +#: src/lang.c:2379 msgid "Printer program with options" msgstr "" -#: src/lang.c:2359 +#: src/lang.c:2380 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2365 +#: src/lang.c:2386 msgid "Force redraw after certain commands" msgstr "" -#: src/lang.c:2366 +#: src/lang.c:2387 msgid "" "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2370 +#: src/lang.c:2391 msgid "" "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2371 +#: src/lang.c:2392 msgid "Start editor with line offset" msgstr "" -#: src/lang.c:2372 +#: src/lang.c:2393 msgid "" "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "" -#: src/lang.c:2377 +#: src/lang.c:2398 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2378 +#: src/lang.c:2399 msgid "Invocation of your editor" msgstr "" -#: src/lang.c:2379 +#: src/lang.c:2400 #, c-format msgid "" "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2384 +#: src/lang.c:2405 msgid "" "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2385 +#: src/lang.c:2406 msgid "External inews" msgstr "" -#: src/lang.c:2386 +#: src/lang.c:2407 msgid "" "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" msgstr "" -#: src/lang.c:2390 +#: src/lang.c:2411 msgid "" "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2391 +#: src/lang.c:2412 msgid "Invocation of your mail command" msgstr "" -#: src/lang.c:2392 +#: src/lang.c:2413 #, c-format msgid "" "# Format of mailer line including parameters\n" @@ -5986,11 +6027,11 @@ msgid "" "# ie. elm interactive : elm -i %%F -s \"%%S\" \"%%T\"\n" msgstr "" -#: src/lang.c:2400 +#: src/lang.c:2421 msgid "Use interactive mail reader" msgstr "" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "" "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" @@ -5999,58 +6040,58 @@ msgid "" "# 2 = use interactive mailreader without headers in file\n" msgstr "" -#: src/lang.c:2410 +#: src/lang.c:2431 msgid "Remove ~/.article after posting" msgstr "" -#: src/lang.c:2411 +#: src/lang.c:2432 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2415 +#: src/lang.c:2436 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2416 +#: src/lang.c:2437 msgid "Filename for posted articles" msgstr "" -#: src/lang.c:2417 +#: src/lang.c:2438 msgid "" "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "" -#: src/lang.c:2422 +#: src/lang.c:2443 msgid "" "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2423 +#: src/lang.c:2444 msgid "Keep failed arts in ~/dead.articles" msgstr "" -#: src/lang.c:2424 +#: src/lang.c:2445 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2428 +#: src/lang.c:2449 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2429 +#: src/lang.c:2450 msgid "No unsubscribed groups in newsrc" msgstr "" -#: src/lang.c:2430 +#: src/lang.c:2451 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2435 +#: src/lang.c:2456 msgid "Remove bogus groups from newsrc" msgstr "" -#: src/lang.c:2436 +#: src/lang.c:2457 msgid "" "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" @@ -6059,58 +6100,58 @@ msgid "" "# 2 = highlight with D on selection screen\n" msgstr "" -#: src/lang.c:2444 +#: src/lang.c:2465 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2445 +#: src/lang.c:2466 msgid "Interval in secs to reread active" msgstr "" -#: src/lang.c:2446 +#: src/lang.c:2467 msgid "" "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2451 +#: src/lang.c:2472 msgid "Reconnect to server automatically" msgstr "" -#: src/lang.c:2452 +#: src/lang.c:2473 msgid "" "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2456 +#: src/lang.c:2477 msgid "" "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2457 +#: src/lang.c:2478 msgid "Cache NNTP overview files locally" msgstr "" -#: src/lang.c:2458 +#: src/lang.c:2479 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/lang.c:2462 +#: src/lang.c:2483 msgid "Enter format string. sets, cancels." msgstr "" -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "" "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" @@ -6121,11 +6162,11 @@ msgid "" "# 4 = NFD\n" msgstr "" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "" @@ -6150,11 +6191,11 @@ msgid "" "Server timed out, trying reconnect # %d\n" msgstr "" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 msgid "Rejoin current group\n" msgstr "" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, c-format msgid "Read (%s)\n" msgstr "" @@ -6171,7 +6212,7 @@ msgstr "" #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -6180,14 +6221,14 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "" "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "" "Line %d is longer than 998 octets, and should be folded, but\n" @@ -6195,14 +6236,14 @@ msgid "" "posting doesn't contain any 8bit chars and thus folding won't happen\n" msgstr "" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "" "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, c-format msgid "Posting: %.*s ..." msgstr "" @@ -6243,7 +6284,7 @@ msgid "" "\n" msgstr "" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "" Binary files tin-1.9.1/po/tr.gmo and tin-1.9.2/po/tr.gmo differ diff -Nurp tin-1.9.1/po/tr.po tin-1.9.2/po/tr.po --- tin-1.9.1/po/tr.po 2006-04-09 17:55:11.000000000 +0200 +++ tin-1.9.2/po/tr.po 2007-02-01 14:02:45.537516830 +0100 @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: tin 1.7.7\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2006-04-09 17:19+0200\n" + "POT-Creation-Date: 2007-02-01 14:02+0100\n" "PO-Revision-Date: 2005-03-06 09:25+0200\n" "Last-Translator: Þebnem Korkmaz \n" "Language-Team: Turkish \n" @@ -15,7 +15,7 @@ msgstr "Project-Id-Version: tin 1.7.7\n" "Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1533 +#: src/art.c:1545 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" @@ -157,138 +157,138 @@ msgstr "" msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:715 +#: src/attrib.c:718 #, c-format msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:720 +#: src/attrib.c:723 #, c-format msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:721 +#: src/attrib.c:724 #, c-format msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:722 +#: src/attrib.c:725 #, c-format msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:723 +#: src/attrib.c:726 #, c-format msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:724 src/attrib.c:731 +#: src/attrib.c:727 src/attrib.c:734 #, c-format msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:725 src/attrib.c:732 +#: src/attrib.c:728 src/attrib.c:735 #, c-format msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:726 src/attrib.c:733 +#: src/attrib.c:729 src/attrib.c:736 #, c-format msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:727 +#: src/attrib.c:730 #, fuzzy, c-format msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=DÝZGE\n" -#: src/attrib.c:728 +#: src/attrib.c:731 #, c-format msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:729 +#: src/attrib.c:732 #, c-format msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:730 +#: src/attrib.c:733 #, c-format msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:734 +#: src/attrib.c:737 #, c-format msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:735 +#: src/attrib.c:738 #, c-format msgid "# fcc=STRING (eg. =mailbox)\n" msgstr "" -#: src/attrib.c:736 +#: src/attrib.c:739 #, c-format msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:737 +#: src/attrib.c:740 #, c-format msgid "# mime_forward=ON/OFF\n" msgstr "" -#: src/attrib.c:739 +#: src/attrib.c:742 #, c-format msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:746 +#: src/attrib.c:749 #, c-format msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:748 +#: src/attrib.c:751 #, fuzzy, c-format msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "#\n" "# Genel(küresel) kaplamýn en iyi olduðunu not ediniz.\n" -#: src/attrib.c:749 +#: src/attrib.c:752 #, fuzzy, c-format msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# Öncelikle özgül grup girdileri tarafýndan takip edilen girdiler\n" "#\n" -#: src/attrib.c:750 +#: src/attrib.c:753 #, c-format msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:756 +#: src/attrib.c:759 #, c-format msgid "# include extra headers\n" msgstr "# extra baþlýklarý içerir\n" -#: src/attrib.c:764 +#: src/attrib.c:767 #, c-format msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:768 +#: src/attrib.c:771 #, fuzzy, c-format msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n" msgstr "# ikilik dosyalarda iþletim sonrasýný tam yapýn, tmp dosyalarýný kaldýrýn.\n" -#: src/attrib.c:769 +#: src/attrib.c:772 #, c-format msgid "# remove tmp files and set Followup-To: poster\n" msgstr "" -#: src/cook.c:507 +#: src/cook.c:559 msgid "(unknown)" msgstr "(bilinmiyor)" @@ -670,7 +670,7 @@ msgstr "Kaydedilen kümeler için aktif do msgid "Creating newsrc file...\n" msgstr "Newsrc dosyasý oluþturuluyor...\n" -#: src/lang.c:129 src/lang.c:1146 +#: src/lang.c:129 src/lang.c:1150 msgid "Default" msgstr "Öntanýmlý" @@ -1898,7 +1898,7 @@ msgstr "Listede seçilen kümeye git" msgid "choose next group with unread news" msgstr "okunmamýþ haberlerde sonraki kümeyi seç" -#: src/lang.c:389 src/lang.c:1193 +#: src/lang.c:389 src/lang.c:1197 #, fuzzy msgid "quit" msgstr "çýk" @@ -2296,50 +2296,45 @@ msgstr "Satýrlar %s " #: src/lang.c:478 #, fuzzy -msgid "Message-ID: line " -msgstr "Ýleti-Kimliði: satýr " - -#: src/lang.c:479 -#, fuzzy msgid "Mail" msgstr "Postalandý" -#: src/lang.c:480 +#: src/lang.c:479 #, fuzzy msgid "mailbox " msgstr "posta kutusu " -#: src/lang.c:481 +#: src/lang.c:480 #, fuzzy, c-format msgid "Mail article(s) to [%.*s]> " msgstr "Makaleleri postala [%.*s]> " -#: src/lang.c:482 +#: src/lang.c:481 #, fuzzy, c-format msgid "Mailing log to %s\n" msgstr "Günlüðü postalýyor %s\n" -#: src/lang.c:483 +#: src/lang.c:482 #, fuzzy msgid "Mail bug report..." msgstr "Hata raporu postala..." -#: src/lang.c:484 +#: src/lang.c:483 #, fuzzy, c-format msgid "Mail BUG REPORT to %s?" msgstr "HATA RAPORUNU postala %s?" -#: src/lang.c:485 +#: src/lang.c:484 #, fuzzy msgid "Mailed" msgstr "Postalandý" -#: src/lang.c:486 +#: src/lang.c:485 #, fuzzy, c-format msgid "Mailing to %s..." msgstr "Postalanýyor %s..." -#: src/lang.c:487 +#: src/lang.c:486 #, fuzzy msgid "# [Mail/Save] active file. Format is like news active file:\n" "# groupname max.artnum min.artnum /dir\n" @@ -2350,323 +2345,336 @@ msgstr "# (Mail/Save) aktif dosya. Forma "# 4. alan basedir(örn.~/Mail or ~/News)\n" "#\n" -#: src/lang.c:490 +#: src/lang.c:489 #, fuzzy, c-format msgid "%s marked as unread" msgstr "%s okunmamýþ olarak iþaretlendi" -#: src/lang.c:491 +#: src/lang.c:490 #, fuzzy, c-format msgid "Marked %d of %d tagged %s as read" msgstr "%d içerisinde %d iþaretlendi %s okunmuþ olarak etiketlendi" -#: src/lang.c:492 +#: src/lang.c:491 #, fuzzy, c-format msgid "Mark all articles as read%s?" msgstr "Bütün makaleleri okunmuþ olarak iþaretle%s?" -#: src/lang.c:493 +#: src/lang.c:492 #, fuzzy, c-format msgid "Mark %s=tagged articles, %s=current article, %s=quit: " msgstr "Ýþaretle %s=etiketlenen makaleler, %s=mevcut makale, %s=çýk: " -#: src/lang.c:494 +#: src/lang.c:493 #, fuzzy, c-format msgid "Mark group %s as read?" msgstr "Küme %s 'i okunmuþ olarak iþaretle?" -#: src/lang.c:495 +#: src/lang.c:494 #, fuzzy, c-format msgid "Mark thread as read%s?" msgstr "Parçacýk %s 'i okunmuþ olarak iþaretle?" -#: src/lang.c:496 +#: src/lang.c:495 #, fuzzy, c-format msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: " msgstr "Ýþaretle %s=etiketlenen makale7parçacýklar, %s= mevcut parçacýk, %s=çýk: " -#: src/lang.c:497 +#: src/lang.c:496 #, fuzzy, c-format msgid "Matching %s groups..." msgstr "%s kümelerini eþleþtiriyor..." -#: src/lang.c:498 src/lang.c:502 +#: src/lang.c:497 src/lang.c:501 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s=search pattern; %s=kill/select" msgstr "=muvcut n için ayarlandý; %s=sonraki okunmayan; %s=arama örüntüsü; %s=yok " "et/seç" -#: src/lang.c:499 +#: src/lang.c:498 #, fuzzy, c-format msgid "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list " "thread" msgstr "%s=yazar aramasý; %s=catchup; %s=alt satýr; %s=üst satýr; %s= okunmuþ " "iþaretle; %s=parçacýk listele" -#: src/lang.c:500 +#: src/lang.c:499 #, fuzzy, c-format msgid "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom" msgstr "%s=üst satýr; %s=alt satýr; %s=üst sayfa; %s= alt sayfa; %s=üst; %s=alt" -#: src/lang.c:501 +#: src/lang.c:500 #, fuzzy, c-format msgid "%s=search forwards; %s=search backwards; %s=quit" msgstr "%s=ileriye doðru ara; %s=geriye doðru ara; %s=çýk" -#: src/lang.c:503 +#: src/lang.c:502 #, fuzzy, c-format msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read" msgstr "%s=yazar aramasý; %s=gövde aramasý; %s=catchup; %s=takip-et; %s=okumuþ olarak " "iþaretle" -#: src/lang.c:504 +#: src/lang.c:503 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup" msgstr "=mevcut n için ayarlandý; %s=sonraki okunmayan; %s,%s=arama örgüsü; %" "s=catchup" -#: src/lang.c:505 +#: src/lang.c:504 #, fuzzy, c-format msgid "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread" msgstr "%s=alt satýr; %s=üst satýr; %s=yardým; %s=taþý; %s=çýk; %s=bütün/okunmamýþ " "deðiþtir" -#: src/lang.c:506 +#: src/lang.c:505 #, fuzzy, c-format msgid "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out" msgstr "%s=abone ol; %s=alt örüntü; %s=abonelikten çýk; %s=alt olmayan örüntü; %" "s=yank in/out" -#: src/lang.c:507 +#: src/lang.c:506 #, fuzzy, c-format msgid "=set current to n; %s=next unread; %s=catchup; %s=display toggle" msgstr "= muvcut n için ayarlandý; %s=sonraki okunmayan; %s=catchup; %s=deðiþimi " "görüntüle" -#: src/lang.c:508 +#: src/lang.c:507 #, fuzzy, c-format msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread" msgstr "%s=yardým; %s=alt satýr; %s=üst satýr; %s=quit; %s=etiketle; %s=okunmamýþ " "olarak iþaretle" -#: src/lang.c:509 +#: src/lang.c:508 #, fuzzy msgid "--More--" msgstr "--Tümü--" -#: src/lang.c:510 +#: src/lang.c:509 #, fuzzy, c-format msgid "Moving %s..." msgstr "Taþýnan %s..." +#: src/lang.c:510 +msgid "Message-ID: & last Reference " +msgstr "" + +#: src/lang.c:511 +#, fuzzy +msgid "Message-ID: line " +msgstr "Ýleti-Kimliði: satýr " + #: src/lang.c:512 +msgid "Message-ID: & References: line" +msgstr "" + +#: src/lang.c:514 #, fuzzy msgid ", name: " msgstr ", isim: " -#: src/lang.c:513 +#: src/lang.c:515 #, fuzzy, c-format msgid "Goto newsgroup [%s]> " msgstr "Haber grubuna gidin [%s]> " -#: src/lang.c:514 +#: src/lang.c:516 #, fuzzy msgid "newsgroups" msgstr "haber gruplarý" -#: src/lang.c:515 +#: src/lang.c:517 #, fuzzy, c-format msgid "Position %s in group list (1,2,..,$) [%d]> " msgstr "Grup listesinde %s konumlayýn (1,2,..,$) [%d]> " -#: src/lang.c:516 +#: src/lang.c:518 #, fuzzy msgid "newsgroup" msgstr "haber gruplarý" -#: src/lang.c:517 +#: src/lang.c:519 #, fuzzy msgid "Try and save newsrc file again?" msgstr "Newsrc dosyasýný kaydetmeyi tekrar dene?" -#: src/lang.c:518 +#: src/lang.c:520 #, fuzzy msgid "Warning: No newsgroups were written to your newsrc file. Save aborted." msgstr "Uyarý: Newsrc dosyanýza herhangi bir haber grubu yazýlmadý. Kaydetme " "durduruldu." -#: src/lang.c:519 +#: src/lang.c:521 #, fuzzy msgid "newsrc file saved successfully.\n" msgstr "newsrc dosyasý baþarýyla kaydedildi.\n" -#: src/lang.c:520 +#: src/lang.c:522 #, fuzzy msgid "-- Next response --" msgstr "-- Sonraki yanýt --" -#: src/lang.c:521 +#: src/lang.c:523 #, fuzzy, c-format msgid "NNTP authorization password not found for %s" msgstr "NNTP yetki þifresi %s için bulunamadý" -#: src/lang.c:522 +#: src/lang.c:524 #, fuzzy msgid "No " msgstr "Hayýr" -#: src/lang.c:523 +#: src/lang.c:525 #, fuzzy msgid "*** No articles ***" msgstr "*** Makale yok ***" -#: src/lang.c:524 +#: src/lang.c:526 #, fuzzy msgid "No articles have been posted" msgstr "Hiçbir makale gönderilmedi" -#: src/lang.c:525 +#: src/lang.c:527 #, fuzzy msgid "*** No description ***" msgstr "*** Taným yok ***" -#: src/lang.c:526 +#: src/lang.c:528 #, fuzzy msgid "No filename" msgstr "Dosya adý yok" -#: src/lang.c:527 +#: src/lang.c:529 #, fuzzy msgid "No group" msgstr "Küme yok" -#: src/lang.c:528 +#: src/lang.c:530 #, fuzzy msgid "*** No groups ***" msgstr "*** Kümeler yok ***" -#: src/lang.c:529 +#: src/lang.c:531 #, fuzzy msgid "No more groups to read" msgstr "Okunacak küme kalmadý" -#: src/lang.c:530 +#: src/lang.c:532 #, fuzzy msgid "No last message" msgstr "Son ileti yok" -#: src/lang.c:531 +#: src/lang.c:533 #, fuzzy msgid "No mail address" msgstr "Posta adresi yok" -#: src/lang.c:532 +#: src/lang.c:534 #, fuzzy msgid "No articles marked for saving" msgstr "Kaydetmek için hiçbir makale iþaretlenmedi" -#: src/lang.c:533 +#: src/lang.c:535 #, fuzzy msgid "No match" msgstr "Eþ yok" -#: src/lang.c:534 +#: src/lang.c:536 #, fuzzy msgid "No more groups" msgstr "Baþka küme yok" -#: src/lang.c:535 +#: src/lang.c:537 #, fuzzy msgid "No newsgroups" msgstr "Haber gruplarý yok" -#: src/lang.c:536 +#: src/lang.c:538 #, fuzzy msgid "No next unread article" msgstr "Sonraki okunmamýþ makale yok" -#: src/lang.c:537 +#: src/lang.c:539 #, fuzzy msgid "No previous group" msgstr "Önceki küme yok" -#: src/lang.c:538 +#: src/lang.c:540 #, fuzzy msgid "No previous unread article" msgstr "Önceki okunmamýþ makale yok" -#: src/lang.c:539 +#: src/lang.c:541 #, fuzzy msgid "No responses" msgstr "Yanýt yok" -#: src/lang.c:540 +#: src/lang.c:542 #, fuzzy msgid "No responses to list in current thread" msgstr "Mevcut parçacýkta listelemek için hiç yanýt yok" -#: src/lang.c:541 +#: src/lang.c:543 #, fuzzy msgid "No search string" msgstr "Arama dizgisi yok" -#: src/lang.c:542 +#: src/lang.c:544 #, fuzzy msgid "No subject" msgstr "Konu yok" -#: src/lang.c:544 +#: src/lang.c:546 #, fuzzy, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "%s: Uçbirim satýr sonuna kadar boþ olmak zorunda (ce)\n" -#: src/lang.c:545 +#: src/lang.c:547 #, fuzzy, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "%s: Uçbirim ekran sonuna kadar boþ olmak zorunda (cd)\n" -#: src/lang.c:546 +#: src/lang.c:548 #, fuzzy, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Uçbirimin ekran temizleme (cl) yeteneði olmalý\n" -#: src/lang.c:547 +#: src/lang.c:549 #, fuzzy, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Uçbirimin imleç hareketi olmalý (cm)\n" -#: src/lang.c:548 +#: src/lang.c:550 #, fuzzy, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "%s: TERM deðiþkeni ekran yetenekleri kullanýlacak þekilde ayarlanmalý\n" -#: src/lang.c:550 +#: src/lang.c:552 #, fuzzy, c-format msgid "No viewer found for %s/%s\n" msgstr "%s/%s için görüntüleyici yok\n" -#: src/lang.c:551 +#: src/lang.c:553 #, fuzzy msgid "Newsgroup does not exist on this server" msgstr "Bu sunucuda haber grubu yok" -#: src/lang.c:552 +#: src/lang.c:554 #, fuzzy, c-format msgid "Group %s not found in active file" msgstr "Küme %s aktif dosyada bulunamadý" -#: src/lang.c:553 +#: src/lang.c:555 #, fuzzy msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "c)yarat, a)lternatif isim kullan, d)varsayýlaný kullan, mewsrc, q)tin'den " "çýk: " -#: src/lang.c:554 +#: src/lang.c:556 #, fuzzy msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "a)lternatif isim kullan, d)varsayýlaný kullan, newsrc, q)tin'den çýk: " -#: src/lang.c:555 +#: src/lang.c:557 #, fuzzy, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2694,43 +2702,43 @@ msgstr "# NNTP-sunucu -> newsrc çeviri d "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:562 +#: src/lang.c:564 #, fuzzy msgid "Only" msgstr "Sadece" -#: src/lang.c:563 +#: src/lang.c:565 #, fuzzy, c-format msgid "Option not enabled. Recompile with %s." msgstr "Seçenek etkin kýlýnmadý. Yeniden derle %s." -#: src/lang.c:564 +#: src/lang.c:566 #, fuzzy msgid "Options Menu" msgstr "Seçenekler menüsü" -#: src/lang.c:567 +#: src/lang.c:569 #, fuzzy, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Regex'de hata: poda %s. %d '%s'" -#: src/lang.c:568 +#: src/lang.c:570 #, fuzzy, c-format msgid "Error in regex: pcre internal error %d" msgstr "Regex'de hata: pcre iç hata %d" -#: src/lang.c:569 +#: src/lang.c:571 #, fuzzy, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Regex'de hata: incele - pcre iç hata %s" -#: src/lang.c:570 +#: src/lang.c:572 #, fuzzy msgid "Post a followup..." msgstr "Takip edici gönder..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:572 +#: src/lang.c:574 #, fuzzy msgid "An error has occurred while posting the article. If you think that this\n" "error is temporary or otherwise correctable, you can postpone the article\n" @@ -2739,312 +2747,317 @@ msgstr "Makaleyi gönderirken hata oluþtu "düþünüyorsanýz, makaleyi erteleyebilir ve tekrar ^O komutunu kulanarak " "ulaþabilirsiniz.\n" -#: src/lang.c:575 +#: src/lang.c:577 #, fuzzy msgid "Posted articles history" msgstr "Gönderilmiþ makalelerin geçmiþi" -#: src/lang.c:576 +#: src/lang.c:578 #, fuzzy, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "habergrup(lar)a gönder [%s]> " -#: src/lang.c:577 +#: src/lang.c:579 #, fuzzy msgid "-- post processing started --" msgstr "-- gönderme iþlemi baþlatýldý --" -#: src/lang.c:578 +#: src/lang.c:580 #, fuzzy msgid "-- post processing completed --" msgstr "-- gönderme iþlemi tamamlandý --" -#: src/lang.c:579 +#: src/lang.c:581 #, fuzzy, c-format msgid "Post subject [%s]> " msgstr "Konuyu gönder (%s)> " -#: src/lang.c:580 +#: src/lang.c:582 #, fuzzy msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "# 'W' komutundan görünebilir postalanmýþ/gönderilmiþ iletilerin özeti.\n" -#: src/lang.c:581 +#: src/lang.c:583 #, fuzzy msgid "Posting article..." msgstr "Makale gönderiliyor..." -#: src/lang.c:582 +#: src/lang.c:584 #, fuzzy, c-format msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): " msgstr "Ertelenmiþ makaleleri gönder [%%s]? (%s/%s/%s/%s/%s): " -#: src/lang.c:583 +#: src/lang.c:585 #, fuzzy, c-format msgid "Hot %s" msgstr "Hot %s" -#: src/lang.c:584 +#: src/lang.c:586 #, fuzzy, c-format msgid "Tagged %s" msgstr "%s imlenmiþ" -#: src/lang.c:585 +#: src/lang.c:587 #, fuzzy, c-format msgid "Untagged %s" msgstr "%s imlenmemiþ" -#: src/lang.c:586 +#: src/lang.c:588 #, fuzzy msgid "Processing mail messages marked for deletion." msgstr "Silinmek için iþaretlenen iletilerin iþletilmesi." -#: src/lang.c:587 +#: src/lang.c:589 #, fuzzy msgid "Processing saved articles marked for deletion." msgstr "Silinmek için iþaretlenen kaydedilmiþ makalelerin iþletilmesi." -#: src/lang.c:588 +#: src/lang.c:590 #, fuzzy, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "Takip edilsin? %s=gönder, %s=yoksay, %s=terk et: " -#: src/lang.c:589 +#: src/lang.c:591 #, fuzzy msgid "Article unchanged, abort mailing?" msgstr "Makale deðiþtirilmesini, posta iptal edilsin mi?" -#: src/lang.c:590 +#: src/lang.c:592 #, fuzzy, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Ertelediðiniz makaleleri görmek ister misiniz (%d)?" -#: src/lang.c:592 +#: src/lang.c:594 #, fuzzy msgid "Add quick kill filter?" msgstr "Öldürücü hýzlý süzü eklensin mi?" -#: src/lang.c:593 +#: src/lang.c:595 #, fuzzy msgid "Add quick selection filter?" msgstr "Hýzlý seçenek süzü eklensin mi?" -#: src/lang.c:594 +#: src/lang.c:596 #, fuzzy msgid "Do you really want to quit?" msgstr "Terketmek istediðinizden emin misiniz?" -#: src/lang.c:595 +#: src/lang.c:597 #, fuzzy, c-format msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: " msgstr "%s=düzenle iletiyi iptal et, %s=terk et, %s=sil (iptal) [%%s]: " -#: src/lang.c:596 +#: src/lang.c:598 #, fuzzy msgid "You have tagged articles in this group - quit anyway?" msgstr "Bu gruptaki makaleleri imlediniz-yine de terk edilsin mi?" -#: src/lang.c:597 +#: src/lang.c:599 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=terk et, %s=düzenle, %s=ertele: " -#: src/lang.c:598 +#: src/lang.c:600 #, fuzzy, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=terk et %s=düzenle %s=kaydet tanýmý öldür: " -#: src/lang.c:599 +#: src/lang.c:601 #, fuzzy, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=terk et %s=düzenle %s=kaydet tanýmý seç: " -#: src/lang.c:600 +#: src/lang.c:602 #, fuzzy msgid "Do you really want to quit without saving your configuration?" msgstr "Yapýlandýrmalarý kaydetmeden terk etmek istediðinizden emin misiniz?" -#: src/lang.c:603 +#: src/lang.c:605 #, fuzzy msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Geçersiz aralýklar- '0-9.$' eg. 1-$ geçerlidir" -#: src/lang.c:604 +#: src/lang.c:606 #, fuzzy msgid "Do you want to abort this operation?" msgstr "Ýþlem durdurulsun mu?" -#: src/lang.c:605 +#: src/lang.c:607 #, fuzzy msgid "Do you want to exit tin immediately?" msgstr "tin'den hemen çýkmak istediðinizden emin misisniz?" -#: src/lang.c:606 +#: src/lang.c:608 #, fuzzy msgid "Read response> " msgstr "Yanýtý oku> " -#: src/lang.c:607 +#: src/lang.c:609 #, fuzzy msgid "Reading ('q' to quit)..." msgstr "('q' iptal) okunuyor..." -#: src/lang.c:608 +#: src/lang.c:610 #, fuzzy, c-format msgid "Reading %sarticles..." msgstr "Makaleler %sokunuyor..." -#: src/lang.c:609 +#: src/lang.c:611 #, fuzzy, c-format msgid "Reading %sattributes file...\n" msgstr "%sÖznitelik dosyasý okunuyor...\n" -#: src/lang.c:610 +#: src/lang.c:612 #, fuzzy, c-format msgid "Reading %sconfig file...\n" msgstr "%sYapýlandýrma dosyasý okunuyor\n" -#: src/lang.c:611 +#: src/lang.c:613 #, fuzzy msgid "Reading filter file...\n" msgstr "Süz dosyasý okunuyor...\n" -#: src/lang.c:612 +#: src/lang.c:614 #, fuzzy, c-format msgid "Reading %s groups..." msgstr "%s gruplar okunuyor..." -#: src/lang.c:613 +#: src/lang.c:615 #, fuzzy msgid "Reading input history file...\n" msgstr "Giriþ tarihçe dosyasý okunuyor...\n" -#: src/lang.c:614 +#: src/lang.c:616 #, fuzzy msgid "Reading keymap file...\n" msgstr "anahtarharita dosyasý okunuyor...\n" -#: src/lang.c:615 +#: src/lang.c:617 #, fuzzy msgid "Reading groups from active file... " msgstr "Gruplar yürürlükteki dosyadan okunuyor... " -#: src/lang.c:616 +#: src/lang.c:618 #, fuzzy msgid "Reading groups from newsrc file... " msgstr "Gruplar haberkaynak dosyasýndan okunuyor... " -#: src/lang.c:617 +#: src/lang.c:619 #, fuzzy msgid "Reading newsgroups file... " msgstr "Habergruplar dosyasý okunuyor... " -#: src/lang.c:618 +#: src/lang.c:620 #, fuzzy msgid "Reading newsrc file..." msgstr "Haberkaynak dosyasý okunuyor..." -#: src/lang.c:620 +#: src/lang.c:621 +#, fuzzy +msgid "References: line " +msgstr "Ýleti-Kimliði: satýr " + +#: src/lang.c:623 #, c-format msgid "(%d:%02d remaining)" msgstr "" -#: src/lang.c:622 +#: src/lang.c:625 #, fuzzy, c-format msgid "Bogus group %s removed." msgstr "Bogus grubu %s kaldýrýldý." -#: src/lang.c:623 +#: src/lang.c:626 #, fuzzy, c-format msgid "Error: rename %s to %s" msgstr "Hata:%s'den %s'ye yeniden adlandýr" -#: src/lang.c:624 +#: src/lang.c:627 #, fuzzy msgid "Reply to author..." msgstr "Yetkiliye yanýt gönderiyor..." -#: src/lang.c:625 +#: src/lang.c:628 #, fuzzy msgid "Repost" msgstr "Yeniden gönder" -#: src/lang.c:626 +#: src/lang.c:629 #, fuzzy msgid "Reposting article..." msgstr "Makale yeniden gönderiliyor..." -#: src/lang.c:627 +#: src/lang.c:630 #, fuzzy, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Makale(ler)i grup(lar)a gönder (%s)> " -#: src/lang.c:628 +#: src/lang.c:631 #, fuzzy msgid "Reset newsrc?" msgstr "Haberkaynak sýfýrlansýn mý?" -#: src/lang.c:629 +#: src/lang.c:632 #, fuzzy msgid "Responses have been directed to the following newsgroups" msgstr "Yanýtlar sonraki habergruplara yönlendirildi" -#: src/lang.c:630 +#: src/lang.c:633 #, fuzzy, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Yanýtlar göndericiye yönlendirildi. %s=postala, %s=gönder, %s=iptal: " -#: src/lang.c:631 +#: src/lang.c:634 #, fuzzy, c-format msgid "RespNo %4d of %4d" msgstr "YanýtNo %4d of %4d" -#: src/lang.c:632 +#: src/lang.c:635 #, fuzzy msgid "Press to continue..." msgstr "Devam etmek için bas..." -#: src/lang.c:634 +#: src/lang.c:637 #, c-format msgid "Select From [%s] (y/n): " msgstr "" -#: src/lang.c:635 +#: src/lang.c:638 #, fuzzy msgid "Select Lines: (num): " msgstr "Satýrlarý seç: (num): " -#: src/lang.c:636 +#: src/lang.c:639 #, fuzzy msgid "Auto-select Article Menu" msgstr "Otomatik Seçme Makale Menüsü" -#: src/lang.c:637 +#: src/lang.c:640 #, fuzzy, c-format msgid "Select Msg-Id [%s] (f/l/o/n): " msgstr "Ýleti-kimliði seçiniz [%s] (f/l/o/n): " -#: src/lang.c:638 +#: src/lang.c:641 #, fuzzy msgid "Select pattern scope: " msgstr "Örüntü alanýný seç: " -#: src/lang.c:639 +#: src/lang.c:642 #, fuzzy, c-format msgid "Select Subject [%s] (y/n): " msgstr "Konuyu seç [%s] (y/n): " -#: src/lang.c:640 +#: src/lang.c:643 #, fuzzy msgid "Select text pattern : " msgstr "Alan metnini seç : " -#: src/lang.c:641 +#: src/lang.c:644 #, fuzzy msgid "Select time in days : " msgstr "Günlük olarak zamaný seç: " -#: src/lang.c:642 +#: src/lang.c:645 #, fuzzy, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -3061,246 +3074,246 @@ msgstr "# %ssunucu yapýlandýrma dosyasý\ "# terk ettiðinde yeniden yazýlacak %s.\n" "# Ne yapmak gerektiðinizi bilmiyorsanýz lütfen deðiþtirmeyiniz.\n" -#: src/lang.c:648 +#: src/lang.c:651 #, fuzzy msgid "Showing unread groups only" msgstr "Sadece okunmamýþ gruplar görünüyor" -#: src/lang.c:649 +#: src/lang.c:652 #, fuzzy msgid "Subject: line (ignore case) " msgstr "Konu: satýr (büyük küçük harf durumunu yoksay)" -#: src/lang.c:650 +#: src/lang.c:653 #, fuzzy msgid "Subject: line (case sensitive)" msgstr "Konu: satýr (büyük-küçük duyarlý)" -#: src/lang.c:651 +#: src/lang.c:654 #, fuzzy msgid "Save" msgstr "Kaydet" -#: src/lang.c:652 +#: src/lang.c:655 #, fuzzy, c-format msgid "Save '%s' (%s/%s)?" msgstr "Kaydedilsin mi '%s' (%s/%s)?" -#: src/lang.c:653 +#: src/lang.c:656 #, fuzzy msgid "Save configuration before continuing?" msgstr "Devam etmeden düzenlemeleri kaydet?" -#: src/lang.c:654 +#: src/lang.c:657 #, fuzzy msgid "Save filename> " msgstr "Dosyaadý kaydet> " -#: src/lang.c:655 +#: src/lang.c:658 #, fuzzy msgid "Saved" msgstr "Kaydedildi" -#: src/lang.c:656 +#: src/lang.c:659 #, fuzzy, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d okunmamýþ (%4d hot) %s in %s\n" -#: src/lang.c:657 +#: src/lang.c:660 #, fuzzy, c-format msgid "Saved %s...\n" msgstr "Kaydedildi %s...\n" -#: src/lang.c:658 +#: src/lang.c:661 #, fuzzy msgid "Nothing was saved" msgstr "Hiçbirþey kaydedilmedi" -#: src/lang.c:659 +#: src/lang.c:662 #, fuzzy, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s 'dan %d %s\n" -#: src/lang.c:660 +#: src/lang.c:663 #, fuzzy, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s kaydedildi %s%s --" -#: src/lang.c:661 +#: src/lang.c:664 #, fuzzy, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s kaydedildi %s - %s --" -#: src/lang.c:662 +#: src/lang.c:665 #, fuzzy msgid "Saving..." msgstr "Kaydediliyor..." -#: src/lang.c:663 +#: src/lang.c:666 #, fuzzy, c-format msgid "%s: Screen initialization failed" msgstr "%s: Ekran baþlatma baþarýsýz" -#: src/lang.c:665 +#: src/lang.c:668 #, fuzzy, c-format msgid "%s: screen is too small\n" msgstr "%s: ekran çok küçük\n" -#: src/lang.c:667 +#: src/lang.c:670 #, fuzzy, c-format msgid "screen is too small, %s is exiting\n" msgstr "ekran çok küçük, %s çýkýyor\n" -#: src/lang.c:668 +#: src/lang.c:671 #, fuzzy, c-format msgid "Search backwards [%s]> " msgstr "Geri ara [%s]> " -#: src/lang.c:669 +#: src/lang.c:672 #, fuzzy, c-format msgid "Search body [%s]> " msgstr "Gövdeyi ara [%s]> " -#: src/lang.c:670 +#: src/lang.c:673 #, fuzzy, c-format msgid "Search forwards [%s]> " msgstr "Ýleri ara [%s]> " -#: src/lang.c:671 +#: src/lang.c:674 #, fuzzy msgid "Searching..." msgstr "Arýyor..." -#: src/lang.c:672 +#: src/lang.c:675 #, fuzzy, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Makale aranýyor %d of %d ('q' durdur)..." -#: src/lang.c:673 +#: src/lang.c:676 #, fuzzy msgid "Select article> " msgstr "Makale seç> " -#: src/lang.c:674 +#: src/lang.c:677 #, fuzzy msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Metin ve ok tuþu kullanmadan seçenek ve düðmelerini basýnýz. terk etmek " "için 'q'." -#: src/lang.c:675 +#: src/lang.c:678 #, fuzzy msgid "Select group> " msgstr "Grup seç> " -#: src/lang.c:676 +#: src/lang.c:679 #, fuzzy, c-format msgid "Enter selection pattern [%s]> " msgstr "Seçme örüntüsünü girin [%s]> " -#: src/lang.c:677 +#: src/lang.c:680 #, fuzzy msgid "Select thread > " msgstr "En küçük yürütme birimlerini seç > " -#: src/lang.c:678 +#: src/lang.c:681 #, fuzzy, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s %s %s (\"%s\") [%s]: DETAYLI hata raporu gönder %s\n" -#: src/lang.c:679 +#: src/lang.c:682 #, fuzzy msgid "servers active-file" msgstr "Sunucular etkindosyasý" -#: src/lang.c:680 +#: src/lang.c:683 #, fuzzy msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Habergruplara giriþ yapýlamýyor. Önce abone ol..." -#: src/lang.c:681 +#: src/lang.c:684 #, fuzzy msgid "" msgstr "" -#: src/lang.c:682 +#: src/lang.c:685 #, fuzzy, c-format msgid "Starting: (%s)" msgstr "Baþlatma: (%s)" -#: src/lang.c:683 +#: src/lang.c:686 #, fuzzy, c-format msgid "List Thread (%d of %d)" msgstr "En küçük yürütme birimlerini listele (%d of %d)" -#: src/lang.c:684 +#: src/lang.c:687 #, fuzzy, c-format msgid "Thread (%.*s)" msgstr "En küçük yürütme birimi (%.*s)" -#: src/lang.c:685 +#: src/lang.c:688 #, fuzzy msgid "Enter wildcard subscribe pattern> " msgstr "Joker abone alanýna giriniz> " -#: src/lang.c:686 +#: src/lang.c:689 #, fuzzy, c-format msgid "subscribed to %d groups" msgstr "%d gruplara abone olundu" -#: src/lang.c:687 +#: src/lang.c:690 #, fuzzy, c-format msgid "Subscribed to %s" msgstr "Abone olundu %s" -#: src/lang.c:688 +#: src/lang.c:691 #, fuzzy msgid "Subscribing... " msgstr "Abone olunuyor... " -#: src/lang.c:689 +#: src/lang.c:692 #, fuzzy, c-format msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): " msgstr "Makale(ler)i yeniden gönder yada deðiþtir (s) [%%s]? (%s/%s/%s): " -#: src/lang.c:690 +#: src/lang.c:693 #, fuzzy, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Makale(ler)i Grup(lar)a yerini al [%s]> " -#: src/lang.c:691 +#: src/lang.c:694 #, fuzzy msgid "Superseding article ..." msgstr "Makaleyi deðiþtiriyor..." -#: src/lang.c:692 +#: src/lang.c:695 #, fuzzy, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "Durduruldu. Yeniden baþlatmak için 'fg' yaz %s\n" -#: src/lang.c:694 +#: src/lang.c:697 #, fuzzy, c-format msgid "%d days" msgstr "%d günler" -#: src/lang.c:695 +#: src/lang.c:698 #, fuzzy msgid "" msgstr "" -#: src/lang.c:696 +#: src/lang.c:699 msgid "TeX " msgstr "" -#: src/lang.c:697 +#: src/lang.c:700 #, fuzzy msgid "# Default action/prompt strings\n" msgstr "# Varsayýlan iþlem/komut dizgileri\n" -#: src/lang.c:698 +#: src/lang.c:701 #, fuzzy msgid "# Defaults for quick (1 key) kill & auto-selection filters\n" "# header=NUM 0,1=Subject: 2,3=From: 4=Message-ID: & full References: line\n" @@ -3317,305 +3330,305 @@ msgstr "# Varsayýlanlarý (1 tuþ) kill & "# case=ON/OFF ON=filter case sensitive OFF=ignore case\n" "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" -#: src/lang.c:711 +#: src/lang.c:714 #, fuzzy msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "# ON durumdaysa mevcut konu yada son satýrdaki habergrup tanýmý için yazýcýyý " "kullanýnýz\n" -#: src/lang.c:712 +#: src/lang.c:715 #, fuzzy msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# Yeni gruplarý algýlamak için ana sunucu& zaman bilgileri kullanýnýz " "(dokunmayýnýz)\n" -#: src/lang.c:713 +#: src/lang.c:716 #, fuzzy msgid "There is no news\n" msgstr "Hiçbir haber yok\n" -#: src/lang.c:714 +#: src/lang.c:717 #, fuzzy msgid "Thread" msgstr "En küçük yürütme birimi" -#: src/lang.c:715 +#: src/lang.c:718 #, fuzzy msgid "Thread Level Commands" msgstr "En Küçük Yürütme Birim Komut Düzeyi" -#: src/lang.c:716 +#: src/lang.c:719 #, fuzzy msgid "Thread deselected" msgstr "En küçük yürütme birimin seçimi iptal edildi" -#: src/lang.c:717 +#: src/lang.c:720 #, fuzzy msgid "Thread selected" msgstr "En küçük yürütme birimi seçildi" -#: src/lang.c:719 +#: src/lang.c:722 #, fuzzy msgid "threads" msgstr "en küçük yürütme birimleri" -#: src/lang.c:721 +#: src/lang.c:724 #, fuzzy msgid "Thread range" msgstr "en küçük yürütme birimi aralýðý" -#: src/lang.c:722 +#: src/lang.c:725 #, fuzzy msgid "thread" msgstr "en küçük yürütme birimi" -#: src/lang.c:723 +#: src/lang.c:726 #, fuzzy, c-format msgid "Thread %4s of %4s" msgstr "En küçük yürütme birimi %4s of %4s" -#: src/lang.c:724 +#: src/lang.c:727 #, fuzzy msgid "Threading articles..." msgstr "Makaleler baðlanýyor..." -#: src/lang.c:725 +#: src/lang.c:728 #, fuzzy, c-format msgid "Toggled word highlighting %s" msgstr "Geçiþ kelime belirtiliyor %s" -#: src/lang.c:726 +#: src/lang.c:729 #, fuzzy msgid "Toggled rot13 encoding" msgstr "Geçiþ rot13 kodlanýyor" -#: src/lang.c:727 +#: src/lang.c:730 #, fuzzy, c-format msgid "Toggled german TeX encoding %s" msgstr "Geçiþ almanca TeX kodlanýyor %s" -#: src/lang.c:728 +#: src/lang.c:731 #, fuzzy, c-format msgid "Toggled tab-width to %d" msgstr "Geçiþ sekme geniþliði %d" -#: src/lang.c:729 +#: src/lang.c:732 #, fuzzy, c-format msgid "%d Trying to dotlock %s" msgstr "%d kilitlemeye deniyor %s" -#: src/lang.c:730 +#: src/lang.c:733 #, fuzzy, c-format msgid "%d Trying to lock %s" msgstr "%d kilitlemeye çalýþýyor %s" -#: src/lang.c:731 +#: src/lang.c:734 #, fuzzy msgid " h=help\n" msgstr " h=yardým\n" -#: src/lang.c:733 +#: src/lang.c:736 #, fuzzy msgid "Unlimited" msgstr "Sýnýrsýz" -#: src/lang.c:734 +#: src/lang.c:737 #, fuzzy msgid "Enter wildcard unsubscribe pattern> " msgstr "Abone iptal joker alanýna giriniz> " -#: src/lang.c:735 +#: src/lang.c:738 #, fuzzy, c-format msgid "Error decoding %s : %s" msgstr "Hata kod çözülmesi %s: %s" -#: src/lang.c:736 +#: src/lang.c:739 #, fuzzy msgid "No end." msgstr "Sonu yok." -#: src/lang.c:737 +#: src/lang.c:740 #, fuzzy, c-format msgid "%s successfully decoded." msgstr "%s kod baþarýyla çözüldü." -#: src/lang.c:738 +#: src/lang.c:741 #, fuzzy, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "%*s[-- %s/%s, %s metinsele kodlama dosyasý, %d satýr, ad: %s --]\n" "\n" -#: src/lang.c:739 +#: src/lang.c:742 #, fuzzy msgid "unread " msgstr "okunmamýþ " -#: src/lang.c:740 +#: src/lang.c:743 #, fuzzy, c-format msgid "unsubscribed from %d groups" msgstr "%d gruptan abonelik iptal edildi" -#: src/lang.c:741 +#: src/lang.c:744 #, fuzzy, c-format msgid "Unsubscribed from %s" msgstr "abonelik iptal edildi %s" -#: src/lang.c:742 +#: src/lang.c:745 #, fuzzy msgid "Unsubscribing... " msgstr "Abonelik iptal oluyor... " -#: src/lang.c:743 +#: src/lang.c:746 #, fuzzy msgid "Unthreading articles..." msgstr "Makalelerin baðlantýsý sonlanýyor..." -#: src/lang.c:744 +#: src/lang.c:747 #, fuzzy msgid "Updated" msgstr "Güncelendi" -#: src/lang.c:745 +#: src/lang.c:748 #, fuzzy msgid "Updating" msgstr "Güncellenme" -#: src/lang.c:746 +#: src/lang.c:749 #, fuzzy, c-format msgid "Opening %s\n" msgstr "Açýlma %s\n" -#: src/lang.c:747 +#: src/lang.c:750 #, fuzzy msgid "No more URL's in this article" msgstr "Makalede Birörnek Kaynak Bulucu yok" -#: src/lang.c:748 +#: src/lang.c:751 #, fuzzy msgid "Use MIME display program for this message?" msgstr "Bu ileti için MIME(Çok Amaçlý Internet Posta Uzantýlarý) ekran programý " "kullan?" -#: src/lang.c:749 +#: src/lang.c:752 #, fuzzy msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr " -c abone edilmiþ habergruplara bütün haberleri okunmuþ olarak " "iþaretleyiniz (toplu mod)" -#: src/lang.c:750 +#: src/lang.c:753 #, fuzzy msgid " -Z return status indicating if any unread news (batch mode)" msgstr " -Z Okunmamýþ haber varsa geri statüsüne gelir (toplu mod)" -#: src/lang.c:751 +#: src/lang.c:754 #, fuzzy msgid " -q don't check for new newsgroups" msgstr " -q yeni habergruplarý için deneme" -#: src/lang.c:752 +#: src/lang.c:755 #, fuzzy msgid " -X don't save any files on quit" msgstr " -X çýkýþta hiçbir dosya kaydetme" -#: src/lang.c:753 +#: src/lang.c:756 #, fuzzy msgid " -d don't show newsgroup descriptions" msgstr " -d habergrubu tanýmlarý gösterme" -#: src/lang.c:754 +#: src/lang.c:757 #, fuzzy msgid " -G limit get only limit articles/group" msgstr " -G limit sadece makale/grup sýnýrý elde et" -#: src/lang.c:755 +#: src/lang.c:758 #, fuzzy, c-format msgid " -H help information about %s" msgstr " -H yardým bilgisi %s" -#: src/lang.c:756 +#: src/lang.c:759 #, fuzzy msgid " -h this help message" msgstr " -h ileti yardýmý" -#: src/lang.c:757 +#: src/lang.c:760 #, fuzzy, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I dir haber dizin dosyasý [varsayýlant=%s]" -#: src/lang.c:758 +#: src/lang.c:761 #, fuzzy msgid " -u update index files (batch mode)" msgstr " -u guncelleme dizin dosyasý (toplu modu)" -#: src/lang.c:759 +#: src/lang.c:762 #, fuzzy, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m dir posta kutusu dizini [varsayýlan=%s]" -#: src/lang.c:760 +#: src/lang.c:763 #, fuzzy, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "posta hata raporu/açýklama %s" -#: src/lang.c:761 +#: src/lang.c:764 #, fuzzy msgid " -N mail new news to your posts (batch mode)" msgstr " -N Gönderilenlere yeni haber gönder (toplu mod)" -#: src/lang.c:762 +#: src/lang.c:765 #, fuzzy msgid " -M user mail new news to specified user (batch mode)" msgstr " -M kulanýcýsý özel kulanýcýya yeni haber göder (toplu mod)" -#: src/lang.c:763 +#: src/lang.c:766 #, fuzzy, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f dosyasý habergruplar dosyasýna abone olundu (varsayýlan=%s)" -#: src/lang.c:764 +#: src/lang.c:767 #, fuzzy msgid " -x no posting mode" msgstr " -x iþlem modu yok" -#: src/lang.c:765 +#: src/lang.c:768 #, fuzzy msgid " -w post an article and exit" msgstr " -w makale gönder ve çýk" -#: src/lang.c:766 +#: src/lang.c:769 #, fuzzy msgid " -o post all postponed articles and exit" msgstr " -o ertelenmiþ bütün makaleleri gönder ve çýk" -#: src/lang.c:767 +#: src/lang.c:770 #, fuzzy msgid " -r read news remotely from default NNTP server" msgstr " -r varsayýlan NTTP sunucusundan haberleri uzaktan oku" -#: src/lang.c:768 +#: src/lang.c:771 #, fuzzy msgid " -R read news saved by -S option" msgstr " -R -S seçeneði basarak kaydedilen haberleri oku" -#: src/lang.c:769 +#: src/lang.c:772 #, fuzzy, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s dir haber dizinini kaydet (varsayýlan=%s)" -#: src/lang.c:770 +#: src/lang.c:773 #, fuzzy msgid " -S save new news for later reading (batch mode)" msgstr " -S daha sonra okumak üzere yeni haberleri kaydet (toplu mod)" -#: src/lang.c:771 +#: src/lang.c:774 #, fuzzy msgid " -z start if any unread news" msgstr " -z okunmamýþ haber varsa baþla" -#: src/lang.c:772 +#: src/lang.c:775 #, fuzzy, c-format msgid "A Usenet reader.\n" "\n" @@ -3624,39 +3637,44 @@ msgstr "Usenet okuyucusu.\n" "\n" "Kullaným: %s [seçenekler] [habergrubu[,...]]" -#: src/lang.c:773 +#: src/lang.c:776 #, fuzzy msgid " -v verbose output for batch mode options" msgstr " -v toplu kip seçenekleri için gereksiz çýkýþ" -#: src/lang.c:774 +#: src/lang.c:777 #, fuzzy msgid " -V print version & date information" msgstr " -V Sürüm & tarih bilgilerini yazdýr" -#: src/lang.c:775 +#: src/lang.c:778 #, fuzzy, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s sadece toplu kip seçenekleri yoksa kullanýþlý\n" -#: src/lang.c:776 +#: src/lang.c:779 #, fuzzy, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s sadece toplu kip seçenekleri varsa kullanýþlý\n" -#: src/lang.c:778 +#: src/lang.c:780 +#, c-format +msgid "Useless combination %s and %s. Ignoring %s.\n" +msgstr "" + +#: src/lang.c:782 #, fuzzy, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d erimin dýþýnda (0 - %d), Sýfýrla" -#: src/lang.c:779 +#: src/lang.c:783 #, fuzzy, c-format msgid "View '%s' (%s/%s)?" msgstr "Göster '%s' (%s/%s)?" -#: src/lang.c:781 +#: src/lang.c:785 #, fuzzy, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3665,28 +3683,28 @@ msgstr "\n" "Uyarý: gönderme %d sütunlarýný geçiyor. %d en uzun ilk satýr:\n" "%-100s\n" -#: src/lang.c:782 +#: src/lang.c:786 #, fuzzy msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Uyarý: makale düzenlendikten sonra deðiþtirildi\n" -#: src/lang.c:783 +#: src/lang.c:787 #, fuzzy msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Uyarý: \"Konu:\" sadece beyazboþluklar var.\n" -#: src/lang.c:784 +#: src/lang.c:788 #, fuzzy msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "\n" "Uyarý: \"Konu:\" , \"Re: \" ile baþlar ama \"Referanslar:\" yok.\n" -#: src/lang.c:786 +#: src/lang.c:790 #, fuzzy msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" @@ -3695,7 +3713,7 @@ msgstr "\n" "Uyarý: Makalede \"Referanslar:\" var \"Konu:\" \"Re: \" ile\n" " baþlmýyor ve \"(was:\" yok.\n" -#: src/lang.c:789 +#: src/lang.c:793 #, fuzzy msgid "Read carefully!\n" "\n" @@ -3717,7 +3735,7 @@ msgstr "Dikkatle oku!\n" "Ýptal etmek üzere olduðunuz makale bu:\n" "\n" -#: src/lang.c:793 +#: src/lang.c:797 #, fuzzy msgid "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" @@ -3732,7 +3750,7 @@ msgstr "\n" " inews programý tarafýndan bir imza iliþtirildiyse, uygun þekilde " "kodlanamaz.\n" -#: src/lang.c:798 +#: src/lang.c:802 #, fuzzy, c-format msgid "\n" "\n" @@ -3745,7 +3763,7 @@ msgstr "\n" "%s dosyanýzdaki bazi deðerler deðiþtirilmiþtir!\n" "Oku WHATSNEW, vb...\n" -#: src/lang.c:800 +#: src/lang.c:804 #, fuzzy, c-format msgid "\n" "\n" @@ -3756,7 +3774,7 @@ msgstr "\n" "Yeni bir sürümden tin %s 'e alçaltýyorsunuz!\n" "%s dosyanýdaki bazý deðerler yoksayýlabiri, diðerleri deðiþtirilebilir!\n" -#: src/lang.c:803 +#: src/lang.c:807 #, fuzzy, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3770,19 +3788,19 @@ msgstr "Uyarý: tin baþlangýçta okuduðund "bu bir hata gösterir ve tini tekrar baþlatmadan %s'i\n" "yedeklemeniz gerekmektedir!\n" -#: src/lang.c:807 +#: src/lang.c:811 #, fuzzy, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "\n" "Uyarý: Bulundu %d '-- \\n' satýrlar, bazý insanlarýn kafasý karýþabilir.\n" -#: src/lang.c:808 +#: src/lang.c:812 #, fuzzy, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Uyarý: Sadece %d 'de %d makale kaydedildi" -#: src/lang.c:809 +#: src/lang.c:813 #, fuzzy, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3795,55 +3813,55 @@ msgstr "\n" " iþe yarar bilgi aktarmadýklarý için, olabildikleri kadar kýsa\n" " olmalýlar.\n" -#: src/lang.c:813 +#: src/lang.c:817 #, fuzzy, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "Uyarý: bu posta adresinde mesaj yaðanaðý tuzaðý olabilir. %s=devam. %" "s=durdur? " -#: src/lang.c:814 +#: src/lang.c:818 #, fuzzy msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "\n" "Uyarý: Ýmzalar '-- \\n' ile baþlamalý '--\\n' ile deðil.\n" -#: src/lang.c:815 +#: src/lang.c:819 #, fuzzy msgid "Writing attributes file..." msgstr "Öznitelikler dosylasýný yazýyor..." -#: src/lang.c:817 +#: src/lang.c:821 #, fuzzy, c-format msgid "%d Responses" msgstr "%d Yanýtlar" -#: src/lang.c:819 +#: src/lang.c:823 #, fuzzy, c-format msgid "Added %d %s" msgstr "Eklendi %d %s" -#: src/lang.c:820 +#: src/lang.c:824 #, fuzzy msgid "No unsubscribed groups to show" msgstr "Gösterilecek abonelikten çýkmýþ küme yok" -#: src/lang.c:821 +#: src/lang.c:825 #, fuzzy msgid "Showing subscribed to groups only" msgstr "Sadece abone kümeleri göster" -#: src/lang.c:822 +#: src/lang.c:826 #, fuzzy msgid "Yes " msgstr "Evet" -#: src/lang.c:823 +#: src/lang.c:827 #, fuzzy msgid " You have mail\n" msgstr " Postanýz var\n" -#: src/lang.c:828 +#: src/lang.c:832 #, fuzzy, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3862,12 +3880,12 @@ msgstr "\n" " ayarlarýný M)enü seçeneði ile yollamak için daha uygun bir þekilde\n" " deðiþtirin.\n" -#: src/lang.c:839 +#: src/lang.c:843 #, fuzzy msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D hata ayýklma kipi 1=NNTP 2=HEPSÝ" -#: src/lang.c:843 +#: src/lang.c:847 #, fuzzy msgid "Read carefully!\n" "\n" @@ -3893,12 +3911,12 @@ msgstr "Dikkatle okuyun!\n" "Ýptal etmek üzere olduðunuz makale bu:\n" "\n" -#: src/lang.c:852 +#: src/lang.c:856 #, fuzzy msgid "toggle color" msgstr "renk deðiþtir" -#: src/lang.c:853 +#: src/lang.c:857 msgid "# Changing colors of several screen parts\n" "# Possible values are:\n" "# -1 = default (white for foreground and black for background)\n" @@ -3922,400 +3940,400 @@ msgid "# Changing colors of several scre "\n" msgstr "" -#: src/lang.c:873 +#: src/lang.c:877 #, fuzzy msgid " -a toggle color flag" msgstr " -a renk bayraðýný deðiþtir" -#: src/lang.c:877 +#: src/lang.c:881 #, fuzzy msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Hata: Birden fazla haber grubu için Takip-Et ayarlandý!\n" -#: src/lang.c:878 +#: src/lang.c:882 #, fuzzy, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Hata: %d haber gruubuna çapraz gönderiyor ve Takip-Et satýrý yok!\n" -#: src/lang.c:879 +#: src/lang.c:883 #, fuzzy, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "Hata: \"%s\" geçerli bir haber grubu deðil!\n" -#: src/lang.c:881 +#: src/lang.c:885 #, fuzzy msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "\n" "Uyarý: Birden fazla haber grubu için Takip-Et ayarlandý!\n" -#: src/lang.c:882 +#: src/lang.c:886 #, fuzzy, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "\n" "Hata: %d haber gruubuna çapraz gönderiyor ve Takip-Et satýrý yok!\n" -#: src/lang.c:883 +#: src/lang.c:887 #, fuzzy, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "\n" "Uyarý: \"%s\" sizin newsrc'niz deðil, bu sitede geçersiz olabilir!\n" -#: src/lang.c:884 +#: src/lang.c:888 #, fuzzy, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "\n" "Uyaý: \"%s\" bu sitede geçerli bir newsrc deðil!\n" -#: src/lang.c:888 +#: src/lang.c:892 #, fuzzy, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "%d dosyalarý %d makalelerinden baþarýyla yazýldý. %d%s meydana geldi." -#: src/lang.c:889 +#: src/lang.c:893 #, fuzzy msgid "Missing parts." msgstr "Bazý yerler eksik." -#: src/lang.c:890 +#: src/lang.c:894 #, fuzzy msgid "No beginning." msgstr "Baþlangýç yok." -#: src/lang.c:891 +#: src/lang.c:895 #, fuzzy msgid "No data." msgstr "Veri yok." -#: src/lang.c:892 +#: src/lang.c:896 #, fuzzy msgid "Unknown error." msgstr "Bilinmeyen hata." -#: src/lang.c:895 +#: src/lang.c:899 #, fuzzy, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tSaðlama toplamý %s (%ld %s)" -#: src/lang.c:900 +#: src/lang.c:904 #, fuzzy msgid "Reading mail active file... " msgstr "Posta aktif dosyasý okunuyor... " -#: src/lang.c:901 +#: src/lang.c:905 #, fuzzy msgid "Reading mailgroups file... " msgstr "Postagruplarý dosyasý okunuyor... " -#: src/lang.c:905 +#: src/lang.c:909 #, fuzzy msgid "perform PGP operations on article" msgstr "makalede PGP iþlemi gerçekleþtir" -#: src/lang.c:906 +#: src/lang.c:910 #, fuzzy msgid "Add key(s) to public keyring?" msgstr "Genel tuþhalkasýna tuþ(lar) ekle?" -#: src/lang.c:907 +#: src/lang.c:911 #, fuzzy, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=þifrele, %s=imzala. %s=ikisi de, %s=çýk: " -#: src/lang.c:908 +#: src/lang.c:912 #, fuzzy, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=iþaretle, %s=imzala & genel tuþ dahil et, %s=çýk: " -#: src/lang.c:909 +#: src/lang.c:913 #, fuzzy, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP ayarlanmadý (açýlamýyor %s)" -#: src/lang.c:910 +#: src/lang.c:914 #, fuzzy msgid "Article not signed and no public keys found" msgstr "Makale imzalanmadý ve genel tuþlar bulunamadý" -#: src/lang.c:912 +#: src/lang.c:916 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=pgp, %s=menü, %s=yolla, %s=ertele: " -#: src/lang.c:913 +#: src/lang.c:917 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=pgp, %s=gönder [%%s]: " -#: src/lang.c:914 +#: src/lang.c:918 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=pgp, %s=menü, %s=yolla, %s=ertele [%%s]: " -#: src/lang.c:916 +#: src/lang.c:920 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=çýk, %s=düzenle, %s=pgp, %s=menü, %s=yolla, %s=ertele: " -#: src/lang.c:917 +#: src/lang.c:921 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=pgp, %s=gönder [%%s]: " -#: src/lang.c:918 +#: src/lang.c:922 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=pgp, %s=menü, %s=yolla, %s=ertele [%%]: " -#: src/lang.c:922 +#: src/lang.c:926 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=menü, %s=yolla, %s=ertele: " -#: src/lang.c:923 +#: src/lang.c:927 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=yolla [%%s]: " -#: src/lang.c:924 +#: src/lang.c:928 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=ispell, %s=menü, %s=yolla, %s=ertele [%%s]: " -#: src/lang.c:926 +#: src/lang.c:930 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=çýk, %s=düzenle, %s=menü, %s=post, %s=ertele: " -#: src/lang.c:927 +#: src/lang.c:931 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=send [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=gönder [%%s]: " -#: src/lang.c:928 +#: src/lang.c:932 #, fuzzy, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: " msgstr "%s=çýk, %s=düzenle, %s=menü, %s=yolla, %s=ertele [%%s]: " -#: src/lang.c:937 +#: src/lang.c:941 #, fuzzy msgid "Try cache_overview_files to speed up things.\n" msgstr "Hýzlandýrmak için önbellek_giriþ_dosyalarýný deneyin.\n" -#: src/lang.c:938 +#: src/lang.c:942 #, fuzzy msgid "Tin will use local index files instead.\n" msgstr "Tin yerel dizin dosyalarýný kullanacak.\n" -#: src/lang.c:939 +#: src/lang.c:943 #, fuzzy msgid "Cannot find NNTP server name" msgstr "NNTP sunucu ismi bulunamadý" -#: src/lang.c:940 +#: src/lang.c:944 #, fuzzy, c-format msgid "Connecting to %s:%d..." msgstr "Baðlanýyor %s:%d..." -#: src/lang.c:941 +#: src/lang.c:945 #, fuzzy msgid "Disconnecting from server...\n" msgstr "Sunucu baðlantýsý kesildi...\n" -#: src/lang.c:942 +#: src/lang.c:946 #, fuzzy, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "GRUP komut yanýtýnda yanlýþ haber grubu ismi. %s e %s" -#: src/lang.c:943 +#: src/lang.c:947 #, fuzzy, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "NNTP sunucusuna baðlantý baþarýsýz %s. Çýkýyor..." -#: src/lang.c:944 +#: src/lang.c:948 #, fuzzy msgid "205 Closing connection" msgstr "205 Baðlantý kesiliyor" -#: src/lang.c:945 +#: src/lang.c:949 #, fuzzy msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "Sunucunuz NNTP XOVER ya da OVER komutunu desteklemiyor.\n" -#: src/lang.c:946 +#: src/lang.c:950 #, fuzzy msgid "Connection to news server has timed out. Reconnect?" msgstr "Haber sunucusu baðlantý süreniz doldu. Tekrar baðlan?" -#: src/lang.c:947 +#: src/lang.c:951 #, fuzzy, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "%s dosyasýna sunucu ismini girin,\n" "ya da çevre deðiþkeni NNTPSERVERi ayarlayýn" -#: src/lang.c:948 +#: src/lang.c:952 #, fuzzy msgid " -A force authentication on connect" msgstr " -A baðlantýda doðrulamayý zorla" -#: src/lang.c:949 +#: src/lang.c:953 #, fuzzy, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv NNTP sunucusundan haberleri oku serv [default=%s]" -#: src/lang.c:950 +#: src/lang.c:954 #, fuzzy, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port baðlantý noktasýný NNTP gibi kullan port [default=%d]" -#: src/lang.c:951 +#: src/lang.c:955 #, fuzzy msgid " -Q quick start. Same as -nqd" msgstr " -Q hýzlý baþlat. -nqd ile ayný" -#: src/lang.c:952 +#: src/lang.c:956 #, fuzzy msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l GROUP (-n) komutu yerine sadece LIST i kullan" -#: src/lang.c:953 +#: src/lang.c:957 #, fuzzy msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n NNTP sunucusundan sadece abone newsrc gruplarýný oku" -#: src/lang.c:955 +#: src/lang.c:959 #, fuzzy, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Bilinmeyen servis.\n" -#: src/lang.c:958 +#: src/lang.c:962 #, fuzzy msgid "\n" "socket or connect problem\n" msgstr "\n" "socket ya da baðlantý hatasý\n" -#: src/lang.c:960 +#: src/lang.c:964 #, fuzzy, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Baðlanýyor %s: " -#: src/lang.c:961 +#: src/lang.c:965 #, fuzzy msgid "Giving up...\n" msgstr "Pes ediliyor...\n" -#: src/lang.c:964 +#: src/lang.c:968 #, fuzzy msgid "Your server does not have Xref: in its XOVER information.\n" "Tin will try to use XHDR XREF instead (slows down things a bit).\n" msgstr "Sunucunuzun XOVER bilgisinde Xref: yok.\n" "Tin XHDR XREF kullanmayý deneyecek (biraz yavaþlatýr).\n" -#: src/lang.c:967 +#: src/lang.c:971 #, fuzzy msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "Sunucunuzun XOVER bilgisinde Xref: yok.\n" -#: src/lang.c:970 +#: src/lang.c:974 #, fuzzy, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "%s Açýlamýyor. NNTP aracýlýðýyla haber okumak için %s -r deneyin.\n" -#: src/lang.c:973 +#: src/lang.c:977 #, fuzzy msgid " -Q quick start. Same as -qd" msgstr " -Q hýzlý baþlat. -qd ile ayný" -#: src/lang.c:974 +#: src/lang.c:978 #, fuzzy msgid " -l read only active file instead of scanning spool (-n) command" msgstr " -l bekletme komutunu taramak yerine sadece aktif dosyayý okuyun" -#: src/lang.c:975 +#: src/lang.c:979 #, fuzzy msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n 'bekletme'den sadece abone newsrc gruplarý okuyun" -#: src/lang.c:976 +#: src/lang.c:980 #, fuzzy msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Sunucunuzun NOV-dosyalarýnda Xref:yok.\n" -#: src/lang.c:980 +#: src/lang.c:984 #, fuzzy msgid "Posting using external inews failed. Use built in inews instead?" msgstr "Dýþ inews kullanýlarak gönderme baþarýsýz. Yerine yerleþik inews kullanýlsýn " "mý?" -#: src/lang.c:981 +#: src/lang.c:985 #, fuzzy msgid "It worked! Should I always use my built in inews from now on?" msgstr "Ýþe yaradý! Bundan sonra hep yerleþik inewslerimi mi kullanmalýyým?" -#: src/lang.c:985 +#: src/lang.c:989 #, fuzzy, c-format msgid "%d %s printed" msgstr "%d %s yazdýrýldý" -#: src/lang.c:986 +#: src/lang.c:990 #, fuzzy msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "çýkýþ makalesi/parçacýk/hot/örüntü/imlenmiþ makaleleri yazýcýya gönder" -#: src/lang.c:987 +#: src/lang.c:991 #, fuzzy msgid "Print" msgstr "Yazdýr" -#: src/lang.c:988 +#: src/lang.c:992 #, fuzzy msgid "Printing..." msgstr "Yazdýrýlýyor..." -#: src/lang.c:992 +#: src/lang.c:996 #, fuzzy msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "kanal makale/parçacýk/hot/örüntü/imlenmiþ makaleleri komuta al" -#: src/lang.c:993 +#: src/lang.c:997 #, fuzzy msgid "No command" msgstr "Komut yok" -#: src/lang.c:994 +#: src/lang.c:998 #, fuzzy msgid "Pipe" msgstr "Kanal" -#: src/lang.c:995 +#: src/lang.c:999 #, fuzzy, c-format msgid "Pipe to command [%.*s]> " msgstr "Komut kanalý [%.*s]> " -#: src/lang.c:996 +#: src/lang.c:1000 #, fuzzy msgid "Piping..." msgstr "Yöneltiliyor..." -#: src/lang.c:998 +#: src/lang.c:1002 #, fuzzy msgid "Piping not enabled." msgstr "Yöneltme gerçekleþtirilemedi." -#: src/lang.c:1002 +#: src/lang.c:1006 #, fuzzy, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -4328,7 +4346,7 @@ msgstr "\n" " boþluktur. Çoklu habergrubu isimlerini ayýrmak için\n" " virgül (,) kullanýn.\n" -#: src/lang.c:1007 +#: src/lang.c:1011 #, fuzzy, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -4339,7 +4357,7 @@ msgstr "\n" " beyazboþluk kullanýlamayacaðý için, buna izin verilmiyor.\n" " Lütfen bütün haber gruplarýný tek bir satýra yazýn.\n" -#: src/lang.c:1012 +#: src/lang.c:1016 #, fuzzy, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -4352,14 +4370,14 @@ msgstr "\n" " Herhangi bir sorunla karþýlaþmamak için bütün haber gruplarýný tek " "bir satýra yazýn.\n" -#: src/lang.c:1016 +#: src/lang.c:1020 #, fuzzy, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "\n" "Uyarý: \"%s:\" satýrýnda SÝLÝNMESÝ GEREKEN boþluklar var.\n" -#: src/lang.c:1021 +#: src/lang.c:1025 #, fuzzy msgid "\n" " If your article contains quoted text please take some time to pare it " @@ -4394,566 +4412,588 @@ msgstr "\n" " dikkatli ve özenli olmazsanýz, insanlar onu tamamen yoksayarlar. Net oldukça " "kalabalýk bir yer.\n" -#: src/lang.c:1034 +#: src/lang.c:1038 #, fuzzy msgid "shell escape" msgstr "kabuk çýkýþý" -#: src/lang.c:1035 +#: src/lang.c:1039 #, fuzzy, c-format msgid "Shell Command (%s)" msgstr "Kabuk Komutu (%s)" -#: src/lang.c:1036 +#: src/lang.c:1040 #, fuzzy, c-format msgid "Enter shell command [%s]> " msgstr "Kabuk komutunu girin [%s]> " -#: src/lang.c:1040 +#: src/lang.c:1044 #, fuzzy, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s: TERM için girdi alýnamýyor\n" -#: src/lang.c:1044 +#: src/lang.c:1048 #, fuzzy, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Grup %.*s (çýkmak için 'q')..." -#: src/lang.c:1046 +#: src/lang.c:1050 #, fuzzy, c-format msgid "Group %.*s..." msgstr "Grup %.*s..." -#: src/lang.c:1050 +#: src/lang.c:1054 #, fuzzy msgid "Server unavailable\n" msgstr "Sunucu kullanýlamýyor\n" -#: src/lang.c:1056 +#: src/lang.c:1060 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %" "s=post" msgstr "%s=kanal, %s=posta; %s=yazdýr, %s=çýk, %s=hepsini deðiþtir/okunmayanlar; %" "s=kaydet; %s=etiketle; %s=yolla" -#: src/lang.c:1057 +#: src/lang.c:1061 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=kanal; %s=posta; %s=yazdýr; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %" "s=yolla" -#: src/lang.c:1059 +#: src/lang.c:1063 #, fuzzy, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=posta; %s=yazdýr; %s=çýk; %s=hepsini deðiþtir/okunmayanlar; %s=kaydet; %" "s=etiketle; %s=yolla" -#: src/lang.c:1060 +#: src/lang.c:1064 #, fuzzy, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=posta; %s=yazdýr; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %s=yolla" -#: src/lang.c:1064 +#: src/lang.c:1068 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=kanal; %s=posta; %s=çýk; %s=hepsini deðiþtir/okunmayanlar; %s=kaydet; %" "s=etiketle; %s=yolla" -#: src/lang.c:1065 +#: src/lang.c:1069 #, fuzzy, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=kanal; %s=posta; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %s=yolla" -#: src/lang.c:1067 +#: src/lang.c:1071 #, fuzzy, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=posta; %s=çýk; %s=hepsini deðiþtir/okunmayanlar; %s=kaydet; %s=etiketle; %" "s=yolla" -#: src/lang.c:1068 +#: src/lang.c:1072 #, fuzzy, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=posta; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %s=yolla" -#: src/lang.c:1074 +#: src/lang.c:1078 #, fuzzy msgid "Terminal does not support color" msgstr "Uçbirim renk desteklemiyor" -#: src/lang.c:1079 +#: src/lang.c:1083 #, fuzzy, c-format msgid "Trying %s" msgstr "%s deneniyor" -#: src/lang.c:1093 src/lang.c:1119 src/lang.c:1135 src/lang.c:1314 src/refs.c:296 +#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1328 src/refs.c:296 #, fuzzy msgid "None" msgstr "Hiçbiri" -#: src/lang.c:1094 +#: src/lang.c:1098 #, fuzzy msgid "Subject" msgstr "Konu" -#: src/lang.c:1095 +#: src/lang.c:1099 #, fuzzy msgid "References" msgstr "Kaynaklar" -#: src/lang.c:1096 +#: src/lang.c:1100 #, fuzzy msgid "Both Subject and References" msgstr "Konu ve Kaynaklar" -#: src/lang.c:1097 +#: src/lang.c:1101 #, fuzzy msgid "Multipart Subject" msgstr "Çoklu Konu" -#: src/lang.c:1098 +#: src/lang.c:1102 msgid "Percentage Match" msgstr "" -#: src/lang.c:1110 src/lang.c:1221 +#: src/lang.c:1114 src/lang.c:1233 #, fuzzy msgid "No" msgstr "Hayýr" -#: src/lang.c:1111 src/lang.c:1223 +#: src/lang.c:1115 src/lang.c:1235 #, fuzzy msgid "Yes" msgstr "Evet" -#: src/lang.c:1112 +#: src/lang.c:1116 #, fuzzy msgid "Hide All" msgstr "Tümünü Sakla" -#: src/lang.c:1120 +#: src/lang.c:1124 #, fuzzy msgid "Address" msgstr "Adres" -#: src/lang.c:1121 +#: src/lang.c:1125 #, fuzzy msgid "Full Name" msgstr "Tüm Ýsim" -#: src/lang.c:1122 +#: src/lang.c:1126 #, fuzzy msgid "Address and Name" msgstr "Adres ve Ýsim" -#: src/lang.c:1129 +#: src/lang.c:1133 #, fuzzy msgid "Max" msgstr "En Çok" -#: src/lang.c:1130 +#: src/lang.c:1134 #, fuzzy msgid "Sum" msgstr "Toplam" -#: src/lang.c:1131 +#: src/lang.c:1135 #, fuzzy msgid "Average" msgstr "Ortalama" -#: src/lang.c:1136 +#: src/lang.c:1140 #, fuzzy msgid "Lines" msgstr "Çizgiler" -#: src/lang.c:1137 +#: src/lang.c:1141 #, fuzzy msgid "Score" msgstr "Skorlar" -#: src/lang.c:1138 +#: src/lang.c:1142 #, fuzzy msgid "Lines & Score" msgstr "Satýrlar & Skorlar" -#: src/lang.c:1147 +#: src/lang.c:1151 #, fuzzy msgid "Black" msgstr "Siyah" -#: src/lang.c:1148 +#: src/lang.c:1152 #, fuzzy msgid "Red" msgstr "Kýrmýzý" -#: src/lang.c:1149 +#: src/lang.c:1153 #, fuzzy msgid "Green" msgstr "Yeþil" -#: src/lang.c:1150 +#: src/lang.c:1154 #, fuzzy msgid "Brown" msgstr "Kahverengi" -#: src/lang.c:1151 +#: src/lang.c:1155 #, fuzzy msgid "Blue" msgstr "Mavi" -#: src/lang.c:1152 +#: src/lang.c:1156 #, fuzzy msgid "Pink" msgstr "Pembe" -#: src/lang.c:1153 +#: src/lang.c:1157 #, fuzzy msgid "Cyan" msgstr "Camgöbeði" -#: src/lang.c:1154 +#: src/lang.c:1158 #, fuzzy msgid "White" msgstr "Beyaz" -#: src/lang.c:1155 +#: src/lang.c:1159 #, fuzzy msgid "Gray" msgstr "Gri" -#: src/lang.c:1156 +#: src/lang.c:1160 #, fuzzy msgid "Light Red" msgstr "Açýk Kýrmýzý" -#: src/lang.c:1157 +#: src/lang.c:1161 #, fuzzy msgid "Light Green" msgstr "Açýk Yeþil" -#: src/lang.c:1158 +#: src/lang.c:1162 #, fuzzy msgid "Yellow" msgstr "Sarý" -#: src/lang.c:1159 +#: src/lang.c:1163 #, fuzzy msgid "Light Blue" msgstr "Açýk Mavi" -#: src/lang.c:1160 +#: src/lang.c:1164 #, fuzzy msgid "Light Pink" msgstr "Açýk Pembe" -#: src/lang.c:1161 +#: src/lang.c:1165 #, fuzzy msgid "Light Cyan" msgstr "Açýk Camgöbeði" -#: src/lang.c:1162 +#: src/lang.c:1166 #, fuzzy msgid "Light White" msgstr "Açýk Beyaz" -#: src/lang.c:1170 src/lang.c:1227 src/lang.c:1241 +#: src/lang.c:1174 src/lang.c:1239 src/lang.c:1253 #, fuzzy msgid "Nothing" msgstr "Hiçbirþey" -#: src/lang.c:1171 +#: src/lang.c:1175 #, fuzzy msgid "Mark" msgstr "Ýþaretle" -#: src/lang.c:1172 +#: src/lang.c:1176 #, fuzzy msgid "Space" msgstr "Boþluk" -#: src/lang.c:1179 +#: src/lang.c:1183 #, fuzzy msgid "Normal" msgstr "Normal" -#: src/lang.c:1180 +#: src/lang.c:1184 #, fuzzy msgid "Best highlighting" msgstr "En iyi vurgulama" -#: src/lang.c:1181 +#: src/lang.c:1185 #, fuzzy msgid "Underline" msgstr "Alt çizgi" -#: src/lang.c:1182 +#: src/lang.c:1186 #, fuzzy msgid "Reverse video" msgstr "Tes görüntü" -#: src/lang.c:1183 +#: src/lang.c:1187 #, fuzzy msgid "Blinking" msgstr "Yanýp sönme" -#: src/lang.c:1184 +#: src/lang.c:1188 #, fuzzy msgid "Half bright" msgstr "Yarý parlak" -#: src/lang.c:1185 +#: src/lang.c:1189 #, fuzzy msgid "Bold" msgstr "Kalýn" -#: src/lang.c:1190 +#: src/lang.c:1194 src/lang.c:1206 #, fuzzy msgid "none" msgstr "hiçbiri" -#: src/lang.c:1191 +#: src/lang.c:1195 #, fuzzy msgid "commands" msgstr "komutlar" -#: src/lang.c:1192 +#: src/lang.c:1196 #, fuzzy msgid "select" msgstr "seç" -#: src/lang.c:1194 +#: src/lang.c:1198 #, fuzzy msgid "commands & quit" msgstr "komutlar & çýk" -#: src/lang.c:1195 +#: src/lang.c:1199 #, fuzzy msgid "commands & select" msgstr "komutlar & seç" -#: src/lang.c:1196 +#: src/lang.c:1200 #, fuzzy msgid "quit & select" msgstr "çýk & seç" -#: src/lang.c:1197 +#: src/lang.c:1201 #, fuzzy msgid "commands & quit & select" msgstr "komutlar & çýk & seç" -#: src/lang.c:1222 +#: src/lang.c:1207 +msgid "PageDown" +msgstr "" + +#: src/lang.c:1208 +msgid "PageNextUnread" +msgstr "" + +#: src/lang.c:1209 +msgid "PageDown or PageNextUnread" +msgstr "" + +#: src/lang.c:1234 #, fuzzy msgid "Shell archive" msgstr "kabuk arþivi" -#: src/lang.c:1228 +#: src/lang.c:1240 #, fuzzy msgid "Subject: (descending)" msgstr "Konu: (alçalan)" -#: src/lang.c:1229 +#: src/lang.c:1241 #, fuzzy msgid "Subject: (ascending)" msgstr "Konu: (yükselen)" -#: src/lang.c:1230 +#: src/lang.c:1242 #, fuzzy msgid "From: (descending)" msgstr "Gönderen: (alçalan)" -#: src/lang.c:1231 +#: src/lang.c:1243 #, fuzzy msgid "From: (ascending)" msgstr "Gönderen: (yükselen)" -#: src/lang.c:1232 +#: src/lang.c:1244 #, fuzzy msgid "Date: (descending)" msgstr "Tarih: (alçalan)" -#: src/lang.c:1233 +#: src/lang.c:1245 #, fuzzy msgid "Date: (ascending)" msgstr "Tarih: (yükselen)" -#: src/lang.c:1234 src/lang.c:1242 +#: src/lang.c:1246 src/lang.c:1254 #, fuzzy msgid "Score (descending)" msgstr "Skor: (alçalan)" -#: src/lang.c:1235 src/lang.c:1243 +#: src/lang.c:1247 src/lang.c:1255 #, fuzzy msgid "Score (ascending)" msgstr "Skor: (yükselen)" -#: src/lang.c:1236 +#: src/lang.c:1248 #, fuzzy msgid "Lines: (descending)" msgstr "Satýrlar: (alçalan)" -#: src/lang.c:1237 +#: src/lang.c:1249 #, fuzzy msgid "Lines: (ascending)" msgstr "Satýrlar: (yükselen)" -#: src/lang.c:1248 +#: src/lang.c:1256 +#, fuzzy +msgid "Last posting date (descending)" +msgstr "Satýrlar: (alçalan)" + +#: src/lang.c:1257 +#, fuzzy +msgid "Last posting date (ascending)" +msgstr "Satýrlar: (yükselen)" + +#: src/lang.c:1262 #, fuzzy msgid "Always Keep" msgstr "Hep Sakla" -#: src/lang.c:1249 +#: src/lang.c:1263 #, fuzzy msgid "Always Remove" msgstr "Hep Kaldýr" -#: src/lang.c:1250 +#: src/lang.c:1264 #, fuzzy msgid "Mark with D on selection screen" msgstr "Seçenek ekranýnda D ile iþaretle" -#: src/lang.c:1255 +#: src/lang.c:1269 #, fuzzy msgid "Kill only unread arts" msgstr "Sadece okunmayan makaleleri yok et" -#: src/lang.c:1256 +#: src/lang.c:1270 #, fuzzy msgid "Kill all arts & show with K" msgstr "Tüm makaleleri yok et & K ile göster" # TODO: s/K/art_marked_killed/ #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1257 +#: src/lang.c:1271 #, fuzzy msgid "Kill all arts and never show" msgstr "Tüm makaleleri yok et ve asla gösterme" -#: src/lang.c:1262 +#: src/lang.c:1276 #, fuzzy msgid "Nothing special" msgstr "Özel birþey yok" -#: src/lang.c:1263 +#: src/lang.c:1277 #, fuzzy msgid "Compress quotes" msgstr "Ýmleri sýkýþtýr" -#: src/lang.c:1264 +#: src/lang.c:1278 #, fuzzy msgid "Quote signatures" msgstr "Ýmzalarý imle" -#: src/lang.c:1265 +#: src/lang.c:1279 #, fuzzy msgid "Compress quotes, quote sigs" msgstr "Ýmleri sýkýþtýr, imzalarý imle" -#: src/lang.c:1266 +#: src/lang.c:1280 #, fuzzy msgid "Quote empty lines" msgstr "Boþ satýrlarý imle" -#: src/lang.c:1267 +#: src/lang.c:1281 #, fuzzy msgid "Compress quotes, quote empty lines" msgstr "Ýmleri sýkýþtýr, boþ satýrlarý imle" -#: src/lang.c:1268 +#: src/lang.c:1282 #, fuzzy msgid "Quote sigs & empty lines" msgstr "Ýmzalarý & boþ satýrlarý imle" -#: src/lang.c:1269 +#: src/lang.c:1283 #, fuzzy msgid "Comp. q., quote sigs & empty lines" msgstr "Ýmleri sýkýþtýr, imzalarý & boþ satýrlarý imle" -#: src/lang.c:1307 +#: src/lang.c:1321 #, fuzzy msgid "no" msgstr "hiçbiri" -#: src/lang.c:1308 +#: src/lang.c:1322 #, fuzzy msgid "with headers" msgstr "en küçük yürütme birimleri" -#: src/lang.c:1309 +#: src/lang.c:1323 msgid "without headers" msgstr "" -#: src/lang.c:1316 src/lang.c:1322 +#: src/lang.c:1330 src/lang.c:1336 msgid "NFKC" msgstr "" -#: src/lang.c:1317 +#: src/lang.c:1331 msgid "NFKD" msgstr "" -#: src/lang.c:1318 +#: src/lang.c:1332 msgid "NFC" msgstr "" -#: src/lang.c:1319 +#: src/lang.c:1333 msgid "NFD" msgstr "" -#: src/lang.c:1330 +#: src/lang.c:1344 #, fuzzy msgid "Display Options" msgstr "Seçenekleri Göster" -#: src/lang.c:1337 +#: src/lang.c:1351 #, fuzzy msgid "Color Options" msgstr "Renk Seçenekleri" -#: src/lang.c:1344 +#: src/lang.c:1358 #, fuzzy msgid "Article-Limiting Options" msgstr "Makale-Sýnýrlandýrma Seçenekleri" -#: src/lang.c:1350 +#: src/lang.c:1364 #, fuzzy msgid "Posting/Mailing Options" msgstr "Yollama/Postalama Seçenekleri" -#: src/lang.c:1356 +#: src/lang.c:1370 #, fuzzy msgid "Saving/Printing Options" msgstr "Kaydetme/Yazdýrma Seçenekleri" -#: src/lang.c:1362 +#: src/lang.c:1376 #, fuzzy msgid "Expert Options" msgstr "Uzman Seçenekleri" -#: src/lang.c:1368 +#: src/lang.c:1382 #, fuzzy msgid "Filtering Options" msgstr "Süzgeçleme Seçenekleri" -#: src/lang.c:1373 src/lang.c:1404 src/lang.c:1410 src/lang.c:1436 src/lang.c:1486 -#: src/lang.c:1492 src/lang.c:1502 src/lang.c:1522 src/lang.c:1597 src/lang.c:1767 -#: src/lang.c:1773 src/lang.c:1779 src/lang.c:1785 src/lang.c:1797 src/lang.c:1804 -#: src/lang.c:1858 src/lang.c:1867 src/lang.c:1873 src/lang.c:1880 src/lang.c:1887 -#: src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 src/lang.c:1915 src/lang.c:1922 -#: src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 src/lang.c:1950 src/lang.c:1957 -#: src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 src/lang.c:1985 src/lang.c:1992 -#: src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 src/lang.c:2020 src/lang.c:2027 -#: src/lang.c:2035 src/lang.c:2051 src/lang.c:2058 src/lang.c:2065 src/lang.c:2072 -#: src/lang.c:2078 src/lang.c:2084 src/lang.c:2101 src/lang.c:2113 src/lang.c:2147 -#: src/lang.c:2200 src/lang.c:2207 src/lang.c:2213 src/lang.c:2238 src/lang.c:2255 -#: src/lang.c:2308 src/lang.c:2344 src/lang.c:2364 src/lang.c:2399 src/lang.c:2409 -#: src/lang.c:2434 src/lang.c:2450 src/lang.c:2469 src/lang.c:2482 +#: src/lang.c:1387 src/lang.c:1418 src/lang.c:1424 src/lang.c:1450 src/lang.c:1502 +#: src/lang.c:1508 src/lang.c:1518 src/lang.c:1529 src/lang.c:1604 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1818 src/lang.c:1825 +#: src/lang.c:1879 src/lang.c:1888 src/lang.c:1894 src/lang.c:1901 src/lang.c:1908 +#: src/lang.c:1915 src/lang.c:1922 src/lang.c:1929 src/lang.c:1936 src/lang.c:1943 +#: src/lang.c:1950 src/lang.c:1957 src/lang.c:1964 src/lang.c:1971 src/lang.c:1978 +#: src/lang.c:1985 src/lang.c:1992 src/lang.c:1999 src/lang.c:2006 src/lang.c:2013 +#: src/lang.c:2020 src/lang.c:2027 src/lang.c:2034 src/lang.c:2041 src/lang.c:2048 +#: src/lang.c:2056 src/lang.c:2072 src/lang.c:2079 src/lang.c:2086 src/lang.c:2093 +#: src/lang.c:2099 src/lang.c:2105 src/lang.c:2122 src/lang.c:2134 src/lang.c:2168 +#: src/lang.c:2221 src/lang.c:2228 src/lang.c:2234 src/lang.c:2259 src/lang.c:2276 +#: src/lang.c:2329 src/lang.c:2365 src/lang.c:2385 src/lang.c:2420 src/lang.c:2430 +#: src/lang.c:2455 src/lang.c:2471 src/lang.c:2490 src/lang.c:2503 #, fuzzy msgid " toggles, sets, cancels." msgstr " deðiþtirir, ayarlar, iptal eder." -#: src/lang.c:1374 +#: src/lang.c:1388 #, fuzzy msgid "Show mini menu & posting etiquette" msgstr "Mini menüyü & yollama etiketini göster" -#: src/lang.c:1375 +#: src/lang.c:1389 #, fuzzy msgid "# If ON show a mini menu of useful commands at each level\n" "# and posting etiquette after composing an article\n" @@ -4961,36 +5001,36 @@ msgstr "# ON durumundaysa makale oluþtur "komutlarýn\n" "# mini menüsünü ve yollama etiketini göster.\n" -#: src/lang.c:1380 +#: src/lang.c:1394 #, fuzzy msgid "Show short description for each newsgroup. toggles & sets." msgstr "Her haber grubu için kýsa açýklama göster. deðiþtirir & ayarlar." -#: src/lang.c:1381 +#: src/lang.c:1395 #, fuzzy msgid "Show description of each newsgroup" msgstr "Her haber grubu için açýklama göster" -#: src/lang.c:1382 +#: src/lang.c:1396 #, fuzzy msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "# ON durumundaysa grup seçim düzeyindeki haber grubu isiminden sonraki\n" "# grup açýklama metnini göster.\n" -#: src/lang.c:1387 +#: src/lang.c:1401 #, fuzzy msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Grup menüsünde Konu & Gönderen (yazar) alanlarýný göster. deðiþtirir " "& ayarlar." -#: src/lang.c:1388 +#: src/lang.c:1402 #, fuzzy msgid "In group menu, show author by" msgstr "Grup menüsünde yazarý þuna göre göster" -#: src/lang.c:1389 +#: src/lang.c:1403 #, fuzzy msgid "# Part of from field to display\n" "# Possible values are (the default is marked with *):\n" @@ -5000,37 +5040,37 @@ msgid "# Part of from field to display\n "# 3 = both\n" msgstr "# Gösterilecek gönderen alan kýsýmlarý 0)hiç 1)adres 2) tüm isim 3) hepsi\n" -#: src/lang.c:1398 +#: src/lang.c:1412 #, fuzzy msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Çiz -> ya da seçim için vurgulanmýþ çubuk. deðiþtirir & ayarlar." -#: src/lang.c:1399 +#: src/lang.c:1413 #, fuzzy msgid "Draw -> instead of highlighted bar" msgstr "Çiz -> vurgulanmýþ çubuk yerine" -#: src/lang.c:1400 +#: src/lang.c:1414 #, fuzzy msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "# ON durumundaysa -> deðilse seçim için vurgulanmýþ çubuk\n" -#: src/lang.c:1405 +#: src/lang.c:1419 #, fuzzy msgid "Use inverse video for page headers" msgstr "Sayfa baþlýklarý için ters görüntü kullan" -#: src/lang.c:1406 +#: src/lang.c:1420 #, fuzzy msgid "# If ON use inverse video for page headers at different levels\n" msgstr "# ON durumundaysa farklý düzeyde sayfa baþlýklarý için ters görüntü kullan\n" -#: src/lang.c:1411 +#: src/lang.c:1425 #, fuzzy msgid "Thread articles by" msgstr "Makaleleri belirle" -#: src/lang.c:1412 +#: src/lang.c:1426 msgid "# Thread articles by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" @@ -5041,15 +5081,15 @@ msgid "# Thread articles by ...\n" "# 5 = Percentage Match\n" msgstr "" -#: src/lang.c:1423 +#: src/lang.c:1437 msgid "Enter percentage match required to thread together. sets." msgstr "" -#: src/lang.c:1424 +#: src/lang.c:1438 msgid "Thread percentage match" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1439 #, c-format msgid "# Thread percentage match...\n" "# the percentage of characters in the subject of an article that must match\n" @@ -5062,12 +5102,12 @@ msgid "# Thread percentage match...\n" "# 'harppy' would be threaded separately from 'happy'\n" msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1451 #, fuzzy msgid "Score of a thread" msgstr "Bir iþ parçacýðýnýn skoru" -#: src/lang.c:1438 +#: src/lang.c:1452 msgid "# Thread score\n" "# Possible values are (the default is marked with *):\n" "# * 0 = max\n" @@ -5075,18 +5115,18 @@ msgid "# Thread score\n" "# 2 = average\n" msgstr "" -#: src/lang.c:1446 +#: src/lang.c:1460 #, fuzzy msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Makaleleri Konu,Gönderen,Tarih ya da Skora göre sýrala. deðiþtirir & " " ayarlar." -#: src/lang.c:1447 +#: src/lang.c:1461 #, fuzzy msgid "Sort articles by" msgstr "Makaleleri sýrala" -#: src/lang.c:1448 +#: src/lang.c:1462 #, fuzzy msgid "# Sort articles by ...\n" "# Possible values are (the default is marked with *):\n" @@ -5107,74 +5147,81 @@ msgstr "# Makaleleri sýrala 0=(hiçbirþey "# 7=(Skor azalmasý) 8=(Skor yükselmesi) 9=(Satýrlar azalmasý) 10=(Satýrlar " "yükselmesi).\n" -#: src/lang.c:1464 +#: src/lang.c:1478 #, fuzzy msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Ýþ parçacýklarýný Hiçbirþeye ya da skora göre sýrala. deðiþtirir & " " ayarlar." -#: src/lang.c:1465 +#: src/lang.c:1479 #, fuzzy msgid "Sort threads by" msgstr "Ýþ parçacýklarýný sýrala" -#: src/lang.c:1466 +#: src/lang.c:1480 +#, fuzzy msgid "# Sort thread by ...\n" "# Possible values are (the default is marked with *):\n" "# 0 = nothing\n" "# * 1 = Score descending\n" "# 2 = Score ascending\n" -msgstr "" + "# 3 = Last posting date descending\n" + "# 4 = Last posting date ascending\n" +msgstr "# Makaleleri sýrala 0=(hiçbirþey) 1=(Konu azalmasý) 2=(Konu yükselmesi)\n" + "# 3=(Gönderen azalmasý) 4=(Gönderen yükselmesi) 5=(Tarih azalmasý) 6=(Tarih " + "yükselmesi)\n" + "# 7=(Skor azalmasý) 8=(Skor yükselmesi) 9=(Satýrlar azalmasý) 10=(Satýrlar " + "yükselmesi).\n" -#: src/lang.c:1474 +#: src/lang.c:1490 #, fuzzy msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Ýmleci gruplardaki ilk/son okunmamýþ makalelere koyun. deðiþtirir & " " ayarlar." -#: src/lang.c:1475 +#: src/lang.c:1491 #, fuzzy msgid "Goto first unread article in group" msgstr "Gruptaki ilk okunmamýþ makaleye git" -#: src/lang.c:1476 +#: src/lang.c:1492 #, fuzzy msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# ON durumundaysa imleci ilk okunmamýþ makeleye, deðilse son makeleye koy.\n" -#: src/lang.c:1480 +#: src/lang.c:1496 #, fuzzy msgid "Show all articles or only unread articles. toggles & sets." msgstr "Tüm makaleleri ya da sadece okunmayan makaleleri göster. deðiþtirir & " " ayarlar." -#: src/lang.c:1481 +#: src/lang.c:1497 #, fuzzy msgid "Show only unread articles" msgstr "Sadece okunmayan makaleleri göster" -#: src/lang.c:1482 +#: src/lang.c:1498 #, fuzzy msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "# ON durumundaysa sadece yeni/okunmamýþ makaleleri, deðilse hepsini göster.\n" -#: src/lang.c:1487 +#: src/lang.c:1503 #, fuzzy msgid "Show only groups with unread arts" msgstr "Sadece okunmamýþ makale olan gruplarý göster" -#: src/lang.c:1488 +#: src/lang.c:1504 #, fuzzy msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "# ON durumundaysa sadece abone olunup okunmamýþ makaler içerem gruplarý " "göster.\n" -#: src/lang.c:1493 +#: src/lang.c:1509 #, fuzzy msgid "Filter which articles" msgstr "Hangi makaleleri filtrele" -#: src/lang.c:1494 +#: src/lang.c:1510 #, fuzzy msgid "# Filter which articles\n" "# Possible values are (the default is marked with *):\n" @@ -5185,95 +5232,63 @@ msgstr "# 0=(Sadece okunmamýþ makaleleri "# 1=(Tüm makalerleri yok et ve K ile iþaretlenmiþ parçaýk olarak göster)\n" "# 2=(Tüm makaleleri yok et ve bir daha gösterme].\n" -#: src/lang.c:1503 -#, fuzzy -msgid "Tab goes to next unread article" -msgstr "Sekme sonraki okunmamýþ makaleye gider" - -#: src/lang.c:1504 -#, fuzzy -msgid "# If ON the TAB command will go to next unread article at article viewer " - "level\n" -msgstr "# ON durumundaysa TAB komutu makale görüntüleyici düzeyinde sonraki okunmamýþ " - "makaleye gider\n" - -#: src/lang.c:1508 -#, fuzzy -msgid "Scrolling with past the end of an art. jumps to the next unread one." -msgstr "Bir makalenin sonundan sonra ile kaydýrma bir sonraki okunmamýþ " - "makaleye atlar." - -#: src/lang.c:1509 -#, fuzzy -msgid "Space goes to next unread article" -msgstr "Boþluk sonraki okunmamýþ makaleye gider" - -#: src/lang.c:1510 -#, fuzzy -msgid "# If ON the SPACE command will go to next unread article at article viewer\n" - "# level when the end of the article is reached (rn-style pager)\n" -msgstr "# ON durumundaysa makalenin sonuna gelindiðinde SPACE komutu makale " - "görüntüleyici # düzeyinde sonraki okunmamýþ makaleye gider\n" - -#: src/lang.c:1515 -#, fuzzy -msgid "Scrolling with / past the end of an art. jumps to the unread one." -msgstr "Makalenin sonundan sonra / ile kaydýrma bir sonraki makaleye " - "atlar." - -#: src/lang.c:1516 +#: src/lang.c:1519 #, fuzzy -msgid "PgDn goes to next unread article" -msgstr "PgDn sonraki okunmamýþ makaleye gider" +msgid "Go to the next unread article with" +msgstr "Sonraki okunmamýþ makale yok" -#: src/lang.c:1517 +#: src/lang.c:1520 #, fuzzy -msgid "# If ON the PGDN or DOWN command will go to next unread article when\n" - "# pressed at end of message\n" -msgstr "# ON durumundaysa PGDN ya da DOWN komutu iletinin sonunda\n" - "# basýldýðýnda sonraki okunmamýþ makaleye gider\n" +msgid "# Go to the unread article with folling key(s)\n" + "# Possible values are (the default is marked with *):\n" + "# 0 = nothing\n" + "# 1 = PAGE DOWN\n" + "# * 2 = TAB\n" + "# 3 = PAGE DOWN or TAB\n" +msgstr "# Makale/parçacýk listelerinde hangi bilgiler gösterilmeli\n" + "# 0 = hiçbir þey, 1 = satýrlar, 2 = skor, 3 = satýrlar & skor\n" -#: src/lang.c:1523 +#: src/lang.c:1530 #, fuzzy msgid "List thread using right arrow key" msgstr "Sað ok tuþuna basarak parçacýklarý listele" -#: src/lang.c:1524 +#: src/lang.c:1531 #, fuzzy msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "# ON durumundaysa parçacýklarý sað ok tuþunu kullanarak girerken otomatik " "olarak listele.\n" -#: src/lang.c:1528 +#: src/lang.c:1535 #, fuzzy msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Silinmiþ makaleleri göstermek için karakter giriniz. ayarlar, " "iptal eder." -#: src/lang.c:1529 +#: src/lang.c:1536 #, fuzzy msgid "Character to show deleted articles" msgstr "Silinmiþ makaleleri gösterecek olan karakter" -#: src/lang.c:1530 +#: src/lang.c:1537 #, fuzzy msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "# Makalenin silindiðini göstermek için kullanýlan karakter (varsayýlan 'D')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1535 +#: src/lang.c:1542 #, fuzzy msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Sýralanmýþ makaleleri imlemek için karakter girin. ayarlar, iptal " "eder." -#: src/lang.c:1536 +#: src/lang.c:1543 #, fuzzy msgid "Character to show inrange articles" msgstr "Sýralanmýþ makaleleri gösterecek olan karakter" -#: src/lang.c:1537 +#: src/lang.c:1544 #, fuzzy msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" @@ -5281,19 +5296,19 @@ msgstr "# Bir makalenin sýralanmýþ olduð "(varsayýlan '#')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1542 +#: src/lang.c:1549 #, fuzzy msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Makalenin döneceðini göstermek için karakter girin. ayarlar, iptal " "eder." -#: src/lang.c:1543 +#: src/lang.c:1550 #, fuzzy msgid "Character to show returning arts" msgstr "Dönen makaleleri gösterecek olan karakter" -#: src/lang.c:1544 +#: src/lang.c:1551 #, fuzzy msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" @@ -5301,18 +5316,18 @@ msgstr "# Bir makalenin döneceðini göste "'-')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1549 +#: src/lang.c:1556 #, fuzzy msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Seçilen makaleleri imlemek için karakter girin. ayarlar, iptal " "eder." -#: src/lang.c:1550 +#: src/lang.c:1557 #, fuzzy msgid "Character to show selected articles" msgstr "Seçilen makaleleri gösterecek olan karakter" -#: src/lang.c:1551 +#: src/lang.c:1558 #, fuzzy msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" @@ -5320,17 +5335,17 @@ msgstr "# Bir makalenin otomatik seçildi "(varsayýlan '*')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1556 +#: src/lang.c:1563 #, fuzzy msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Son makaleleri imlemek için karakter girin. ayarlar, iptal eder." -#: src/lang.c:1557 +#: src/lang.c:1564 #, fuzzy msgid "Character to show recent articles" msgstr "Son makaleleri gösterecek olan karakter" -#: src/lang.c:1558 +#: src/lang.c:1565 #, fuzzy msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" @@ -5338,18 +5353,18 @@ msgstr "# Bir makalenin son olduðunu gös "'o')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1563 +#: src/lang.c:1570 #, fuzzy msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Okunmamýþ makaleleri imlemek için karakter girin. ayarlar, iptal " "eder." -#: src/lang.c:1564 +#: src/lang.c:1571 #, fuzzy msgid "Character to show unread articles" msgstr "Okunmamýþ makaleleri gösterecek olan karakter" -#: src/lang.c:1565 +#: src/lang.c:1572 #, fuzzy msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" @@ -5357,17 +5372,17 @@ msgstr "# Bir makalenin okunmadýðýný gös "'+')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1570 +#: src/lang.c:1577 #, fuzzy msgid "Enter character to indicate read articles. sets, cancels." msgstr "Okunan makaleleri imlemek için karakter girin. yarlar, iptal eder." -#: src/lang.c:1571 +#: src/lang.c:1578 #, fuzzy msgid "Character to show read articles" msgstr "Okunmamýþ makaleleri gösterecek olan karakter" -#: src/lang.c:1572 +#: src/lang.c:1579 #, fuzzy msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" @@ -5375,18 +5390,18 @@ msgstr "# Bir makalenin okunduðunu göste "')\n" "# _ þuna dönüþür ' '\n" -#: src/lang.c:1577 +#: src/lang.c:1584 #, fuzzy msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Yok olan makaleleri imlemek için karakter girin. ayarlar, iptal " "eder." -#: src/lang.c:1578 +#: src/lang.c:1585 #, fuzzy msgid "Character to show killed articles" msgstr "Yok olan makaleleri gösterecen karakter" -#: src/lang.c:1579 +#: src/lang.c:1586 #, fuzzy msgid "# Character used to show that an art was killed (default 'K')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" @@ -5394,18 +5409,18 @@ msgstr "# Bir makalenin yok olduðunu gös "'K')\n" "# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n" -#: src/lang.c:1584 +#: src/lang.c:1591 #, fuzzy msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Okunmuþ-seçilmiþ makaleleri imlemek için karakter girin. ayarlar, " "iptal eder." -#: src/lang.c:1585 +#: src/lang.c:1592 #, fuzzy msgid "Character to show readselected arts" msgstr "Okunmuþ-seçilmiþ makaleleri gösteren karakter" -#: src/lang.c:1586 +#: src/lang.c:1593 #, fuzzy msgid "# Character used to show that an art was selected before read (default ':')\n" "# kill_level must be set accordingly, _ is turned into ' '\n" @@ -5413,27 +5428,27 @@ msgstr "# Bir makalenin okunmadan seçild "(varsayýlan ':')\n" "# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n" -#: src/lang.c:1591 +#: src/lang.c:1598 #, fuzzy msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Görünen haber gruplarýnýn en fazla uzunluðunu girin. ayarlar." -#: src/lang.c:1592 +#: src/lang.c:1599 #, fuzzy msgid "Max. length of group names shown" msgstr "Gösterilen grup isimlerinin en fazla uzunluðu" -#: src/lang.c:1593 +#: src/lang.c:1600 #, fuzzy msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Görünen haber gryplarýnýn isimlerinin en fazla uzunluðu\n" -#: src/lang.c:1598 +#: src/lang.c:1605 #, fuzzy msgid "Show lines/score in listings" msgstr "Listelerdeki satýrlarý/skoru göster" -#: src/lang.c:1599 +#: src/lang.c:1606 #, fuzzy msgid "# What informations should be displayed in article/thread listing\n" "# Possible values are (the default is marked with *):\n" @@ -5444,19 +5459,19 @@ msgid "# What informations should be dis msgstr "# Makale/parçacýk listelerinde hangi bilgiler gösterilmeli\n" "# 0 = hiçbir þey, 1 = satýrlar, 2 = skor, 3 = satýrlar & skor\n" -#: src/lang.c:1608 +#: src/lang.c:1615 #, fuzzy msgid "0 = full page scrolling, -1 = show previous last line as first on next page, -" "2 = half page" msgstr "0 = tüm sayfa kaydýrýmý, -1 = önceki son satýrý bir sonraki sayfanýn ilk " "satýrýnda göster, -2 = yarým sayfa" -#: src/lang.c:1609 +#: src/lang.c:1616 #, fuzzy msgid "Number of lines to scroll in pager" msgstr "Sayfalayýcýda kaydýrýlan satýr sayýsý" -#: src/lang.c:1610 +#: src/lang.c:1617 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# Possible values are (the default is marked with *):\n" "# -2 = half-page scrolling\n" @@ -5466,28 +5481,28 @@ msgid "# Number of lines that cursor-up/ "# 2 or greater = scroll by 2 or more lines (only in the pager)\n" msgstr "" -#: src/lang.c:1620 +#: src/lang.c:1627 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1628 #, fuzzy msgid "Display signatures" msgstr "Seçenekleri Göster" -#: src/lang.c:1622 +#: src/lang.c:1629 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1626 +#: src/lang.c:1633 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1627 +#: src/lang.c:1634 msgid "Display uue data as an attachment" msgstr "" -#: src/lang.c:1628 +#: src/lang.c:1635 msgid "# Handling of uuencoded data in the pager\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no, display raw uuencoded data\n" @@ -5497,28 +5512,28 @@ msgid "# Handling of uuencoded data in t "# be folded into a tag line.\n" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1645 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1639 +#: src/lang.c:1646 msgid "Display \"a as Umlaut-a" msgstr "" -#: src/lang.c:1640 +#: src/lang.c:1647 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1645 src/lang.c:1655 +#: src/lang.c:1652 src/lang.c:1662 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1653 msgid "Display these header fields (or *)" msgstr "" -#: src/lang.c:1647 +#: src/lang.c:1654 msgid "# Which news headers you wish to see. If you want to see _all_ the headers,\n" "# place an '*' as this value. This is the only way a wildcard can be used.\n" "# If you enter 'X-' as the value, you will see all headers beginning with\n" @@ -5527,12 +5542,12 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1656 +#: src/lang.c:1663 #, fuzzy msgid "Do not display these header fields" msgstr "Aktüel habver baþlýlarý alanýnýn rengi" -#: src/lang.c:1657 +#: src/lang.c:1664 msgid "# Same as 'news_headers_to_display' except it denotes the opposite.\n" "# An example of using both options might be if you thought X- headers were\n" "# A Good Thing(tm), but thought Alan and Pape were miscreants...well then " @@ -5543,364 +5558,390 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1674 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1675 msgid "Skip multipart/alternative parts" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1676 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1674 +#: src/lang.c:1681 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1682 msgid "Regex used to show quoted lines" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1683 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted when viewing articles. Quoted lines are shown in col_quote.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1689 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1683 +#: src/lang.c:1690 msgid "Regex used to show twice quoted l." msgstr "" -#: src/lang.c:1684 +#: src/lang.c:1691 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted twice. Twice quoted lines are shown in col_quote2.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1690 +#: src/lang.c:1697 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1691 +#: src/lang.c:1698 msgid "Regex used to show >= 3 times q.l." msgstr "" -#: src/lang.c:1692 +#: src/lang.c:1699 msgid "# A regular expression that tin will use to decide which lines are\n" "# quoted >=3 times. >=3 times quoted lines are shown in col_quote3.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1706 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1707 msgid "Regex used to highlight /slashes/" msgstr "" -#: src/lang.c:1701 +#: src/lang.c:1708 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '/' are to be shown in col_markslashes.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1707 +#: src/lang.c:1714 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1708 +#: src/lang.c:1715 msgid "Regex used to highlight *stars*" msgstr "" -#: src/lang.c:1709 +#: src/lang.c:1716 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '*' are to be shown in col_markstars.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1715 +#: src/lang.c:1722 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1716 +#: src/lang.c:1723 #, fuzzy msgid "Regex used to highlight -strokes-" msgstr "-vuruþ- ile vurgulama rengi" -#: src/lang.c:1717 +#: src/lang.c:1724 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '-' are to be shown in col_markstroke.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1723 +#: src/lang.c:1730 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1731 msgid "Regex used to highlight _underline_" msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1732 msgid "# A regular expression that tin will use to decide which words\n" "# bounded by '_' are to be shown in col_markdash.\n" "# If you leave this blank, tin will use a built in default.\n" msgstr "" -#: src/lang.c:1731 +#: src/lang.c:1738 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1739 msgid "Regex with Subject prefixes" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1740 msgid "# A regular expression that tin will use to find Subject prefixes\n" "# which will be removed before showing the header.\n" msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1745 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1746 msgid "Regex with Subject suffixes" msgstr "" -#: src/lang.c:1740 +#: src/lang.c:1747 msgid "# A regular expression that tin will use to find Subject suffixes\n" "# which will be removed when replying or posting followup.\n" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1752 +msgid "A regex used to find the begin of a verbatim block." +msgstr "" + +#: src/lang.c:1753 +msgid "Regex for begin of a verbatim block" +msgstr "" + +#: src/lang.c:1754 +msgid "# A regular expression that tin will use to find the begin of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1759 +msgid "A regex used to find the end of a verbatim block." +msgstr "" + +#: src/lang.c:1760 +msgid "Regex for end of a verbatim block" +msgstr "" + +#: src/lang.c:1761 +msgid "# A regular expression that tin will use to find the end of\n" + "# a verbatim block.\n" +msgstr "" + +#: src/lang.c:1766 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1746 +#: src/lang.c:1767 msgid "MIME binary content viewer" msgstr "" -#: src/lang.c:1747 +#: src/lang.c:1768 msgid "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" "# Otherwise specify an external viewer program (eg, metamail) or leave blank\n" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1754 +#: src/lang.c:1775 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1776 msgid "Ask before using MIME viewer" msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1777 msgid "# If ON tin will ask before using metamail to display MIME messages\n" "# this only happens if metamail_prog is set to something\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1782 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1783 msgid "Catchup read groups when quitting" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1784 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1768 +#: src/lang.c:1789 msgid "Catchup group using left key" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1790 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1774 +#: src/lang.c:1795 msgid "Catchup thread by using left key" msgstr "" -#: src/lang.c:1780 +#: src/lang.c:1801 msgid "Which actions require confirmation" msgstr "" -#: src/lang.c:1781 +#: src/lang.c:1802 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1786 +#: src/lang.c:1807 #, fuzzy msgid "'Mark article read' ignores tags" msgstr "makaleyi okunmamýþ olarak iþaretle" -#: src/lang.c:1787 +#: src/lang.c:1808 #, fuzzy msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "# ON durumundaysa 'makaleyi okunmuþ olarak iþaretle'" -#: src/lang.c:1791 +#: src/lang.c:1812 #, fuzzy msgid "Program to run to open URL's, sets, cancels." msgstr "URL açmak için çalýþtýrýlan program, ayarlar, iptal eder." -#: src/lang.c:1792 +#: src/lang.c:1813 #, fuzzy msgid "Program that opens URL's" msgstr "URL açan program" -#: src/lang.c:1793 +#: src/lang.c:1814 #, fuzzy msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "# Program URL açýyordu. Aktüel URL'ler sona eklenecek\n" -#: src/lang.c:1798 +#: src/lang.c:1819 #, fuzzy msgid "Use mouse in xterm" msgstr "xterm2de fare kullan" -#: src/lang.c:1799 +#: src/lang.c:1820 #, fuzzy -msgid "# If ON enable mouse key support on xterm terminals\n" +msgid "# If ON enable mouse button support on xterm terminals\n" msgstr "# ON durumundaysa xtrem uçbirimlerini destekleyen fare tuþunu etkinleþtir.\n" -#: src/lang.c:1805 +#: src/lang.c:1826 #, fuzzy msgid "Use scroll keys on keypad" msgstr "Klavye üzerinde kaydýrma tuþlarýný kullan" -#: src/lang.c:1806 +#: src/lang.c:1827 #, fuzzy msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "# ON durumunduysa uçbirimler tarafýndan desteklenen kaydýrma tuþlarýný " "etkinleþtir\n" -#: src/lang.c:1811 +#: src/lang.c:1832 #, fuzzy msgid "Enter maximum number of article to get. sets." msgstr "Alýnacak makalenin max. sayýsýný yazýn. ayarlar." -#: src/lang.c:1812 +#: src/lang.c:1833 #, fuzzy msgid "Number of articles to get" msgstr "Alýnacak makale sayýsý" -#: src/lang.c:1813 +#: src/lang.c:1834 #, fuzzy msgid "# Number of articles to get (0=no limit), if negative sets maximum number\n" "# of already read articles to be read before first unread one\n" msgstr "# Alýnacak makale sayýsý (0= sýnýrsýz), eðer negatif max.sayýyý ayarlarsa\n" -#: src/lang.c:1818 +#: src/lang.c:1839 #, fuzzy msgid "Enter number of days article is considered recent. sets." msgstr "Makalenin yeni sayýlacaðý gün sayýsýný yazýn. ayarlar." -#: src/lang.c:1819 +#: src/lang.c:1840 #, fuzzy msgid "Article recentness time limit" msgstr "Makalenin yenilik zaman sýnýrý" -#: src/lang.c:1820 +#: src/lang.c:1841 #, fuzzy msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "# Makalenin yeni sayýldýðý gün sayýsý, (0=OFF)\n" -#: src/lang.c:1824 +#: src/lang.c:1845 #, fuzzy msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "WILDMAT normal jokerler, REGEX tam düzenli varsayým eþleþtirmeleri içindir." -#: src/lang.c:1825 +#: src/lang.c:1846 #, fuzzy msgid "Wildcard matching" msgstr "Joker eþleþtiriyor" -#: src/lang.c:1826 +#: src/lang.c:1847 msgid "# Wildcard matching\n" "# Possible values are (the default is marked with *):\n" "# * 0 = wildmat\n" "# 1 = regex\n" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1854 #, fuzzy msgid "Enter minimal score before an article is marked killed. sets." msgstr "Makale yok et olarak iþaretlenmeden önce minimal skoru yazýn. ayarlar." -#: src/lang.c:1834 +#: src/lang.c:1855 #, fuzzy msgid "Score limit (kill)" msgstr "Sýnýrý skorla (yok et)" -#: src/lang.c:1835 +#: src/lang.c:1856 #, fuzzy msgid "# Score limit before an article is marked killed\n" msgstr "# Makale yok et olarak iþaretlendiðinde sýnýrý skorla\n" -#: src/lang.c:1839 +#: src/lang.c:1860 #, fuzzy msgid "Enter default score to kill articles. sets." msgstr "Makaleleri yok etmke için varsayýlan skoru yazýn. ayarlar." -#: src/lang.c:1840 +#: src/lang.c:1861 #, fuzzy msgid "Default score to kill articles" msgstr "Makaleleri yok etmke için skoru varsay" -#: src/lang.c:1841 +#: src/lang.c:1862 #, fuzzy msgid "# Default score to kill articles\n" msgstr "# Makaleleri yok etmke için skoru varsay\n" -#: src/lang.c:1845 +#: src/lang.c:1866 #, fuzzy msgid "Enter minimal score before an article is marked hot. sets." msgstr "Makale 'hot' olarak iþaretlenmeden önce minimum skoru yazýn. ayarlar." -#: src/lang.c:1846 +#: src/lang.c:1867 #, fuzzy msgid "Score limit (select)" msgstr "Sýnýrý skorla (seç)" -#: src/lang.c:1847 +#: src/lang.c:1868 #, fuzzy msgid "# Score limit before an article is marked hot\n" msgstr "# Makale 'hot! olarak iþaretlenmeden önce sýnýrý skorlayýn\n" -#: src/lang.c:1851 +#: src/lang.c:1872 #, fuzzy msgid "Enter default score to select articles. sets." msgstr "Makaleleri seçmek için varsayýlan skoru yazýn. ayarlar." -#: src/lang.c:1852 +#: src/lang.c:1873 #, fuzzy msgid "Default score to select articles" msgstr "Makaleleri seçmek için varsayýlan deðer" -#: src/lang.c:1853 +#: src/lang.c:1874 #, fuzzy msgid "# Default score to select articles\n" msgstr "# Makaleleri seçmek için varsayýlan deðer\n" -#: src/lang.c:1859 +#: src/lang.c:1880 #, fuzzy msgid "Use slrnface to show ''X-Face:''s" msgstr "''X-Face:''s göstermek için slmface kullan" -#: src/lang.c:1860 +#: src/lang.c:1881 #, fuzzy msgid "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n" "# Only useful when running in an xterm.\n" @@ -5908,273 +5949,273 @@ msgstr "# ON durmunduysa ''X-Face:'' baþ "kullanýlýyor.\n" "# sadece xterm çalýþýtýrýlýrken yararlý.\n" -#: src/lang.c:1868 +#: src/lang.c:1889 #, fuzzy msgid "Use ANSI color" msgstr "ANSI renk geçerli" -#: src/lang.c:1869 +#: src/lang.c:1890 #, fuzzy msgid "# If ON using ANSI-color\n" msgstr "# On durumundaysa ANSI-renk kullanýlýyor\n" -#: src/lang.c:1874 +#: src/lang.c:1895 #, fuzzy msgid "Standard foreground color" msgstr "Standart önplan rengi" -#: src/lang.c:1875 +#: src/lang.c:1896 #, fuzzy msgid "# Standard foreground color\n" "# Default: -1 (default color)\n" msgstr "# Standart önplan rengi\n" -#: src/lang.c:1881 +#: src/lang.c:1902 #, fuzzy msgid "Standard background color" msgstr "Standart arkaplan rengi" -#: src/lang.c:1882 +#: src/lang.c:1903 #, fuzzy msgid "# Standard background color\n" "# Default: -1 (default color)\n" msgstr "# Standart arkaplan rengi\n" -#: src/lang.c:1888 +#: src/lang.c:1909 #, fuzzy msgid "Color for inverse text (background)" msgstr "Çapraz metnin arkaplan rengi" -#: src/lang.c:1889 +#: src/lang.c:1910 #, fuzzy msgid "# Color of background for inverse text\n" "# Default: 4 (blue)\n" msgstr "# Çapraz metnin arkaplan rengi\n" -#: src/lang.c:1895 +#: src/lang.c:1916 #, fuzzy msgid "Color for inverse text (foreground)" msgstr "Çapraz metnin önplan rengi" -#: src/lang.c:1896 +#: src/lang.c:1917 #, fuzzy msgid "# Color of foreground for inverse text\n" "# Default: 7 (white)\n" msgstr "# Çapraz metnin önplan rengi\n" -#: src/lang.c:1902 +#: src/lang.c:1923 #, fuzzy msgid "Color of text lines" msgstr "Metin satýrlarýnýn rengi" -#: src/lang.c:1903 +#: src/lang.c:1924 #, fuzzy msgid "# Color of text lines\n" "# Default: -1 (default color)\n" msgstr "# Color of text lines\n" -#: src/lang.c:1909 +#: src/lang.c:1930 #, fuzzy msgid "Color of mini help menu" msgstr "Mini yardým menüsünün rengi" -#: src/lang.c:1910 +#: src/lang.c:1931 #, fuzzy msgid "# Color of mini help menu\n" "# Default: 3 (brown)\n" msgstr "# Mini yardým menüsünün rengi\n" -#: src/lang.c:1916 +#: src/lang.c:1937 #, fuzzy msgid "Color of help text" msgstr "Yardým sayfalarýnýn rengi" -#: src/lang.c:1917 +#: src/lang.c:1938 msgid "# Color of help pages\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:1923 +#: src/lang.c:1944 #, fuzzy msgid "Color of status messages" msgstr "Durum iletilerinin rengi" -#: src/lang.c:1924 +#: src/lang.c:1945 #, fuzzy msgid "# Color of messages in last line\n" "# Default: 6 (cyan)\n" msgstr "# Son satýrdaki iletilerin rengi\n" -#: src/lang.c:1930 +#: src/lang.c:1951 #, fuzzy msgid "Color of quoted lines" msgstr "Ýmlenmiþ-satýr rengi" -#: src/lang.c:1931 +#: src/lang.c:1952 #, fuzzy msgid "# Color of quote-lines\n" "# Default: 2 (green)\n" msgstr "# Ýmlenmiþ-satýr rengi\n" -#: src/lang.c:1937 +#: src/lang.c:1958 #, fuzzy msgid "Color of twice quoted line" msgstr "Çift imlenen satýrlarýn rengi" -#: src/lang.c:1938 +#: src/lang.c:1959 #, fuzzy msgid "# Color of twice quoted lines\n" "# Default: 3 (brown)\n" msgstr "# Çift imlenen satýrlarýn rengi\n" -#: src/lang.c:1944 +#: src/lang.c:1965 #, fuzzy msgid "Color of =>3 times quoted line" msgstr "Ýmlenmiþ satýrda =>3 kat rengi" -#: src/lang.c:1945 +#: src/lang.c:1966 #, fuzzy msgid "# Color of >=3 times quoted lines\n" "# Default: 4 (blue)\n" msgstr "# Ýmlenmiþ satýrlarda >=3 kat rengi\n" -#: src/lang.c:1951 +#: src/lang.c:1972 #, fuzzy msgid "Color of article header lines" msgstr "Makale baþlýk satýrlarýnýn rengi" -#: src/lang.c:1952 +#: src/lang.c:1973 #, fuzzy msgid "# Color of header-lines\n" "# Default: 2 (green)\n" msgstr "# Baþlýk-satýrlarýnýn rengi\n" -#: src/lang.c:1958 +#: src/lang.c:1979 #, fuzzy msgid "Color of actual news header fields" msgstr "Aktüel habver baþlýlarý alanýnýn rengi" -#: src/lang.c:1959 +#: src/lang.c:1980 #, fuzzy msgid "# Color of actual news header fields\n" "# Default: 9 (light red)\n" msgstr "# Aktüel haber baþlýklarý alanýnýn rengi\n" -#: src/lang.c:1965 +#: src/lang.c:1986 #, fuzzy msgid "Color of article subject lines" msgstr "Makale konu satýrlarýnýn rengi" -#: src/lang.c:1966 +#: src/lang.c:1987 #, fuzzy msgid "# Color of article subject\n" "# Default: 6 (cyan)\n" msgstr "# Makale konusunun rengi\n" -#: src/lang.c:1972 +#: src/lang.c:1993 #, fuzzy msgid "Color of response counter" msgstr "Yanýt sayacý rengi" -#: src/lang.c:1973 +#: src/lang.c:1994 #, fuzzy msgid "# Color of response counter\n" "# Default: 2 (green)\n" msgstr "# Yanýt sayacý rengi\n" -#: src/lang.c:1979 +#: src/lang.c:2000 #, fuzzy msgid "Color of sender (From:)" msgstr "Gönderen (-den:) rengi" -#: src/lang.c:1980 +#: src/lang.c:2001 #, fuzzy msgid "# Color of sender (From:)\n" "# Default: 2 (green)\n" msgstr "# Gönderen (-den:) rengi\n" -#: src/lang.c:1986 +#: src/lang.c:2007 #, fuzzy msgid "Color of help/mail sign" msgstr "yardým/posta iþareti rengi" -#: src/lang.c:1987 +#: src/lang.c:2008 #, fuzzy msgid "# Color of Help/Mail-Sign\n" "# Default: 4 (blue)\n" msgstr "# Yardým/Posta Ýþareti rengi\n" -#: src/lang.c:1993 +#: src/lang.c:2014 #, fuzzy msgid "Color of signatures" msgstr "Ýmza rengi" -#: src/lang.c:1994 +#: src/lang.c:2015 #, fuzzy msgid "# Color of signature\n" "# Default: 4 (blue)\n" msgstr "# Ýmza rengi\n" -#: src/lang.c:2000 +#: src/lang.c:2021 #, fuzzy msgid "Color of highlighted URLs" msgstr "*yýldýz* ile vurgulama rengi" -#: src/lang.c:2001 +#: src/lang.c:2022 msgid "# Color of highlighted URLs\n" "# Default: -1 (default color)\n" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2028 #, fuzzy msgid "Color of highlighting with *stars*" msgstr "*yýldýz* ile vurgulama rengi" -#: src/lang.c:2008 +#: src/lang.c:2029 #, fuzzy msgid "# Color of word highlighting with *stars*\n" "# Default: 11 (yellow)\n" msgstr "# *yýldýz* ile vurgulama rengi\n" -#: src/lang.c:2014 +#: src/lang.c:2035 #, fuzzy msgid "Color of highlighting with _dash_" msgstr "_kesik çizgi_ ile vurgulama rengi" -#: src/lang.c:2015 +#: src/lang.c:2036 #, fuzzy msgid "# Color of word highlighting with _dash_\n" "# Default: 13 (light pink)\n" msgstr "# _kesik çizgi_ ile vurgulama rengi\n" -#: src/lang.c:2021 +#: src/lang.c:2042 #, fuzzy msgid "Color of highlighting with /slash/" msgstr "/bölü/ ile vurgulama rengi" -#: src/lang.c:2022 +#: src/lang.c:2043 #, fuzzy msgid "# Color of word highlighting with /slash/\n" "# Default: 14 (light cyan)\n" msgstr "# /bölü/ ile vurgulama rengi\n" -#: src/lang.c:2028 +#: src/lang.c:2049 #, fuzzy msgid "Color of highlighting with -stroke-" msgstr "-vuruþ- ile vurgulama rengi" -#: src/lang.c:2029 +#: src/lang.c:2050 #, fuzzy msgid "# Color of word highlighting with -stroke-\n" "# Default: 12 (light blue)\n" msgstr "# -vuruþ- ile vurgulama rengi\n" -#: src/lang.c:2036 +#: src/lang.c:2057 #, fuzzy msgid "Attr. of highlighting with *stars*" msgstr "*yýldýz* ile vurgulama özniteliði" -#: src/lang.c:2037 +#: src/lang.c:2058 #, fuzzy msgid "# Attributes of word highlighting on mono terminals\n" "# Possible values are:\n" @@ -6195,64 +6236,64 @@ msgstr "# Tekli uçbirimlerde sözcük vurg "# 0 - Normal, 1 - Altýný çiz, 2 - En iyi vurgulama,\n" "# 3 - Video ters çevir, 4 - Yanýp sönen, 5 - Yaý parlak, 6 - Koyu\n" -#: src/lang.c:2052 +#: src/lang.c:2073 #, fuzzy msgid "Attr. of highlighting with _dash_" msgstr "_vuruþ_ ile vurgulama özniteliði" -#: src/lang.c:2053 +#: src/lang.c:2074 msgid "# Attribute of word highlighting with _dash_\n" "# Default: 2 (best highlighting)\n" msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2080 #, fuzzy msgid "Attr. of highlighting with /slash/" msgstr "/bölü/ ile vurgulama özniteliði" -#: src/lang.c:2060 +#: src/lang.c:2081 #, fuzzy msgid "# Attribute of word highlighting with /slash/\n" "# Default: 5 (half bright)\n" msgstr "# /bölü/ ile vurgulama özniteliði\n" -#: src/lang.c:2066 +#: src/lang.c:2087 #, fuzzy msgid "Attr. of highlighting with -stroke-" msgstr "-kesik çizgi- ile vurgulama özniteliði" -#: src/lang.c:2067 +#: src/lang.c:2088 #, fuzzy msgid "# Attribute of word highlighting with -stroke-\n" "# Default: 3 (reverse video)\n" msgstr "# -kesik çizgi- ile vurgulama özniteliði\n" -#: src/lang.c:2073 +#: src/lang.c:2094 #, fuzzy msgid "URL highlighting in message body" msgstr "Ýleti gövdesinde vurgulana sözcük" -#: src/lang.c:2074 +#: src/lang.c:2095 #, fuzzy msgid "# Enable URL highlighting?\n" msgstr "# Sözcük vurgulamayý etkinlþetir?\n" -#: src/lang.c:2079 +#: src/lang.c:2100 #, fuzzy msgid "Word highlighting in message body" msgstr "Ýleti gövdesinde vurgulana sözcük" -#: src/lang.c:2080 +#: src/lang.c:2101 #, fuzzy msgid "# Enable word highlighting?\n" msgstr "# Sözcük vurgulamayý etkinlþetir?\n" -#: src/lang.c:2085 +#: src/lang.c:2106 #, fuzzy msgid "What to display instead of mark" msgstr "Ýþaretin yerine ne gösterilmeli?" -#: src/lang.c:2086 +#: src/lang.c:2107 #, fuzzy msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" @@ -6264,66 +6305,66 @@ msgstr "# iþaretleri vurgulasalar bile?\ "# baþtaki ve sondaki yýldýzlar ve kesik çizgiler görüntülenmelidir\n" "# 0 - hayýr 1 - evet, iþareti görüntüle 2 - boþluk býrak\n" -#: src/lang.c:2095 +#: src/lang.c:2116 #, fuzzy msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Sayfalayýcýdaki makale satýrlarýný çevrelemek için sütun mumarasýný yazýn. " " ayarlar." -#: src/lang.c:2096 +#: src/lang.c:2117 #, fuzzy msgid "Page line wrap column" msgstr "Sayfa satýrý sütunu çevreliyor" -#: src/lang.c:2097 +#: src/lang.c:2118 #, fuzzy msgid "# Wrap article lines at column\n" msgstr "# Sütundaki makale satýrlarýný çevrele\n" -#: src/lang.c:2102 +#: src/lang.c:2123 #, fuzzy msgid "Wrap around threads on next unread" msgstr "Sonraki okunmayanda parçacýklarý çevrele" -#: src/lang.c:2103 +#: src/lang.c:2124 #, fuzzy msgid "# If ON wrap around threads on searching next unread article\n" msgstr "# ON durumunduysa sonraki okunmayan makaleyi aramak için parçacýklarý " "çevrele\n" -#: src/lang.c:2107 +#: src/lang.c:2128 #, fuzzy msgid "Enter default mail address (and fullname). sets." msgstr "Varsayýlan posta adresini (ve tüm ismi) yaz, ayarlar." -#: src/lang.c:2108 +#: src/lang.c:2129 #, fuzzy msgid "Mail address (and fullname)" msgstr "Posta adresi (ile tüm isim)" -#: src/lang.c:2109 +#: src/lang.c:2130 #, fuzzy msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "# Kullanýcýnýn posta adresi (ile tüm ismi), deðilse kullanýcýadý@anasistem " "(tüm isim)\n" -#: src/lang.c:2114 +#: src/lang.c:2135 msgid "Show empty Followup-To in editor" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2136 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:2119 +#: src/lang.c:2140 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:2120 +#: src/lang.c:2141 msgid "Create signature from path/command" msgstr "" -#: src/lang.c:2121 +#: src/lang.c:2142 msgid "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" "# default_sigfile=!command executes external command to generate a " @@ -6331,52 +6372,52 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:2128 +#: src/lang.c:2149 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2129 +#: src/lang.c:2150 msgid "Prepend signature with \"-- \"" msgstr "" -#: src/lang.c:2130 +#: src/lang.c:2151 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2155 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2135 +#: src/lang.c:2156 msgid "Add signature when reposting" msgstr "" -#: src/lang.c:2136 +#: src/lang.c:2157 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2140 +#: src/lang.c:2161 #, c-format msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2141 +#: src/lang.c:2162 msgid "Characters used as quote-marks" msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2163 #, fuzzy, c-format msgid "# Characters used in quoting to followups and replies.\n" "# '_' is replaced by ' ', %%s, %%S are replaced by author's initials.\n" msgstr "# Sonrakine geçerken ve cevaplarda kulanýlan karakterlerin gösterimi.\n" "# '_' deðiþtirilir ' ', %%s, %%S yazar baþlýðý deðiþtirilir.\n" -#: src/lang.c:2148 +#: src/lang.c:2169 #, fuzzy msgid "Quoting behavior" msgstr "Davranýþ göstermesi" -#: src/lang.c:2149 +#: src/lang.c:2170 #, fuzzy msgid "# How quoting should be handled when following up or replying.\n" "# Possible values are (the default is marked with *):\n" @@ -6398,17 +6439,17 @@ msgstr "Diðerine geçerken yada cevap ver "# 6 = Ýmzalarý göster, boþ satýrlarý göster\n" "# 7 = Görünümleri göster, imzalarý göster, boþ satýrlarý göster\n" -#: src/lang.c:2162 src/lang.c:2170 src/lang.c:2176 +#: src/lang.c:2183 src/lang.c:2191 src/lang.c:2197 #, fuzzy msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "%A Adres %D Tarih %F Adres+Ad %G Grupadý %M Ýleti-Kimliði %N Ad %C Ýlk Ad" -#: src/lang.c:2163 +#: src/lang.c:2184 #, fuzzy msgid "Quote line when following up" msgstr "Sonrakine geçerken satýr göster" -#: src/lang.c:2164 +#: src/lang.c:2185 #, fuzzy, c-format msgid "# Format of quote line when mailing/posting/following-up an article\n" "# %%A Address %%D Date %%F Addr+Name %%G Groupname %%M Message-ID\n" @@ -6418,43 +6459,43 @@ msgstr "# Bir makaleyi postalarken/gönde "# %%A Adres %%D Tarih %%F Adres+Ad %%G Grupadý %%M Ýleti-Kimliði\n" "# %%N Tam Ad %%C Ýlk Adýnýz %%I Adýn baþ harfleri\n" -#: src/lang.c:2171 +#: src/lang.c:2192 #, fuzzy msgid "Quote line when cross-posting" msgstr "Çapraz gönderirken satýrý göster" -#: src/lang.c:2177 +#: src/lang.c:2198 #, fuzzy msgid "Quote line when mailing" msgstr "posta gönderirken satýrý göster" -#: src/lang.c:2182 +#: src/lang.c:2203 #, fuzzy msgid "If ON, include User-Agent: header. toggles & sets." msgstr "ON durumdaysa, Kullanýcý-Etken baþlýðý ekleyiniz. toggles & " "sets." -#: src/lang.c:2183 +#: src/lang.c:2204 #, fuzzy msgid "Insert 'User-Agent:'-header" msgstr "'User-Agent:'-baþlýk ekleyiniz" -#: src/lang.c:2184 +#: src/lang.c:2205 #, fuzzy msgid "# If ON include advertising User-Agent: header\n" msgstr "# ON durumdaysa User-Agent ilanýný ekleyiniz: baþlýk\n" -#: src/lang.c:2189 +#: src/lang.c:2210 #, fuzzy msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "(US-ASCII, ISO-8859-1, EUC-KR) Çok Amaçlý Internet Posta Uzantýlarý için " "karakterküme ismini giriniz." -#: src/lang.c:2190 +#: src/lang.c:2211 msgid "MM_CHARSET" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2212 #, fuzzy msgid "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" @@ -6471,33 +6512,33 @@ msgstr "# Karakterkümesi Çok Amaçlý Inte "tanýmlanmýþsa, diðer karakterkümesi\n" "# mm_karakterkümesi görünemez ve gösteremez '?'.\n" -#: src/lang.c:2201 +#: src/lang.c:2222 #, fuzzy msgid "MM_NETWORK_CHARSET" msgstr "MM_AÐ_KARAKTERKÜMESÝ" -#: src/lang.c:2202 +#: src/lang.c:2223 #, fuzzy msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# Çok Amaçlý Internet Posta Uzantýlarýn (içerik-tür) posta baþlýklarý için " "kulanýlan karakter kümesi\n" -#: src/lang.c:2208 +#: src/lang.c:2229 #, fuzzy msgid "Mailbox format" msgstr "posta kutusu" -#: src/lang.c:2209 +#: src/lang.c:2230 #, fuzzy msgid "# Format of the mailbox.\n" msgstr "# Posta kutusunun biçimi.\n" -#: src/lang.c:2214 +#: src/lang.c:2235 #, fuzzy msgid "MIME encoding in news messages" msgstr "Yeni mesajlarda Çok Amaçlý Internet Posta Uzantýlarý kodla" -#: src/lang.c:2215 +#: src/lang.c:2236 #, fuzzy msgid "# MIME encoding (8bit, base64, quoted-printable, 7bit) of the body\n" "# for mails and posts, if necessary. QP is efficient for most European\n" @@ -6511,17 +6552,17 @@ msgstr "# Çok Amaçlý Internet Posta Uzan "# Base64 8bit Doðu Asya ve Yunancadan daha yüksek verimlidir\n" "# Rusça karakter kümesinin 8bit karakterler.\n" -#: src/lang.c:2223 src/lang.c:2244 +#: src/lang.c:2244 src/lang.c:2265 #, fuzzy msgid "Don't change unless you know what you are doing. cancels." msgstr "Ne yaptýðýný bilmiyorsan deðiþtirme. iptal eder." -#: src/lang.c:2224 +#: src/lang.c:2245 #, fuzzy msgid "Use 8bit characters in news headers" msgstr "Yeni baþlýklarda 8bit karakter kullan." -#: src/lang.c:2225 +#: src/lang.c:2246 #, fuzzy msgid "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -6532,33 +6573,33 @@ msgstr "# ON durumdaysa, 8bit karakterle "# karakterlerin deðeri bakýlmadan kodlanýr\n" "# Çok Amaçlý Internet Posta Uzantýlarý kodlamasý 8bit ise\n" -#: src/lang.c:2232 +#: src/lang.c:2253 #, fuzzy msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Soniþemci dosyalarý otomatik olarak göster toggles, sets, " "cancels." -#: src/lang.c:2233 +#: src/lang.c:2254 #, fuzzy msgid "View post-processed files" msgstr "Soniþlemci dosyalarý göster" -#: src/lang.c:2234 +#: src/lang.c:2255 #, fuzzy msgid "# If set, post processed files will be opened in a viewer\n" msgstr "# Kurulmuþsa, soniþlemci dosyalar görünüleyicide açýlacak\n" -#: src/lang.c:2239 +#: src/lang.c:2260 #, fuzzy msgid "MIME encoding in mail messages" msgstr "Çok Amaçlý Internet Posta Uzantýlarý posta iletilerinde kodla" -#: src/lang.c:2245 +#: src/lang.c:2266 #, fuzzy msgid "Use 8bit characters in mail headers" msgstr "Posta baþlýklarýnda 8bit karakter kullan" -#: src/lang.c:2246 +#: src/lang.c:2267 #, fuzzy msgid "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -6574,28 +6615,28 @@ msgstr "# ON durumdaysa, 8bit karakterle "# posta baþlýklarýnda 8bit karakterleri yasaksa iptal önerilir HAYIR -e\n" "# Çok önemli neden yoksa ON durumuna getir\n" -#: src/lang.c:2256 +#: src/lang.c:2277 #, fuzzy msgid "Strip blanks from ends of lines" msgstr "Satýr sonu boþlarý yok et" -#: src/lang.c:2257 +#: src/lang.c:2278 #, fuzzy msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "# ON durumdaysa yavaþ uçbirimde daha hýzlý görüntü için boþlarý yok et.\n" -#: src/lang.c:2262 +#: src/lang.c:2283 #, fuzzy msgid "If ON, use transliteration. toggles & sets." msgstr "ON durumdaysa damga çevirisi kullan. toggles & sets." -#: src/lang.c:2263 +#: src/lang.c:2284 #, fuzzy msgid "Transliteration" msgstr "Damga çevirisi" -#: src/lang.c:2264 +#: src/lang.c:2285 #, fuzzy msgid "# If ON, use //TRANSLIT extension. This means that when a character cannot\n" "# be represented in the in the target character set, it can be approximated\n" @@ -6604,50 +6645,50 @@ msgstr "# ON durumdaysa, //DAMGAÇEVÝRÝSÝ "# daha büyük damga kümesi, yaklaþýk deðer verilebilir\n" "# Bir veya daha fazla ayný karakter\n" -#: src/lang.c:2271 +#: src/lang.c:2292 #, fuzzy msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Mektup kopyasý otomatik olarak kendine gönder. toggles & sets." -#: src/lang.c:2272 +#: src/lang.c:2293 #, fuzzy msgid "Send you a cc automatically" msgstr "Mektup kopyasý otomatik olarak kendine gönder." -#: src/lang.c:2273 +#: src/lang.c:2294 #, fuzzy msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "# ON durumdaysa otomatic olarak ismini mektup kopyasýna koy: Makaleyi " "gönderirken alan yarat\n" -#: src/lang.c:2277 +#: src/lang.c:2298 #, fuzzy msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Gizli mektup kopyasý otomatik olarak kendine gönder." -#: src/lang.c:2278 +#: src/lang.c:2299 #, fuzzy msgid "Send you a blind cc automatically" msgstr "Gizli mektup kopyasý otomatik olarak kendine gönder" -#: src/lang.c:2279 +#: src/lang.c:2300 #, fuzzy msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "# ON durumdaysa otomatic olarak ismini görünmeyen mektup kopyasýna koy: " "Makaleyi gönderirken alan yarat\n" -#: src/lang.c:2283 +#: src/lang.c:2304 #, fuzzy msgid "Enter address elements about which you want to be warned. sets." msgstr "uyarýlmak istediðin adres öðelerine gir sets." -#: src/lang.c:2284 +#: src/lang.c:2305 #, fuzzy msgid "Spamtrap warning address parts" msgstr "isteneyen e-mail posta uyarýsý" -#: src/lang.c:2285 +#: src/lang.c:2306 #, fuzzy msgid "# A comma-delimited list of address-parts you want to be warned\n" "# about when trying to reply by email.\n" @@ -6655,125 +6696,125 @@ msgstr "# Uyarýlmak isiyorsan virgülle-s "göster\n" "# e-posta ile cevap yazmak istediðin zaman\n" -#: src/lang.c:2290 +#: src/lang.c:2311 #, fuzzy msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Süz giriþin geçerli olacaðý varsayýlan günler sayýsýna gir sets." -#: src/lang.c:2291 +#: src/lang.c:2312 #, fuzzy msgid "No. of days a filter entry is valid" msgstr "Süz girdisinin geçerli günler sayýsý" -#: src/lang.c:2292 +#: src/lang.c:2313 #, fuzzy msgid "# Number of days a short term filter will be active\n" msgstr "# Kýsa sürecek süzün aktif olacaðý günler sayýsý\n" -#: src/lang.c:2296 +#: src/lang.c:2317 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2297 +#: src/lang.c:2318 #, fuzzy msgid "Add posted articles to filter" msgstr "Gönderilen makaleleri süzgece ekle" -#: src/lang.c:2298 +#: src/lang.c:2319 #, fuzzy msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "# ON durumduysa gönderilmiþ makaleleri ekle# highlighting follow-ups\n" -#: src/lang.c:2302 +#: src/lang.c:2323 #, fuzzy msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "makaleler/iç parçacýklarýn posta kutusu olarak kaydedilecek dizin." -#: src/lang.c:2303 +#: src/lang.c:2324 #, fuzzy msgid "Mail directory" msgstr "Posta dizini" -#: src/lang.c:2304 +#: src/lang.c:2325 #, fuzzy msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "# makaleler/iç parçacýklarýn posta kutusu olarak kaydetmek istediðin dizin\n" -#: src/lang.c:2309 +#: src/lang.c:2330 #, fuzzy msgid "Save articles in batch mode (-S)" msgstr "Makaleleri toplu moda kaydet (-S)" -#: src/lang.c:2310 +#: src/lang.c:2331 #, fuzzy msgid "# If ON articles/threads will be saved in batch mode when save -S\n" "# or mail (-M/-N) is specified on the command line\n" msgstr "# ON durumdaysa kaydeti bastýðýn zaman makaleler/iç parçacýklar\n" "# toplu mode olarak kaydedilir\n" -#: src/lang.c:2315 +#: src/lang.c:2336 #, fuzzy msgid "The directory where you want articles/threads saved." msgstr "makeleleri7iç parçacýklarýný kaydetmek istediðin dizin." -#: src/lang.c:2316 +#: src/lang.c:2337 #, fuzzy msgid "Directory to save arts/threads in" msgstr "iç parçacýklarýn kaydedildiði dizin" -#: src/lang.c:2317 +#: src/lang.c:2338 #, fuzzy msgid "# Directory where articles/threads are saved\n" msgstr "# Kaydedilmiþ makalelerin/iç parçacýklarýn olduðu dizin\n" -#: src/lang.c:2321 +#: src/lang.c:2342 #, fuzzy msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Arçivadý olarak makaleleri/iç parçacýklarý otomatik olarak kaydet: header. " " toggles & sets." -#: src/lang.c:2322 +#: src/lang.c:2343 #, fuzzy msgid "Use Archive-name: header for save" msgstr "Arþiv ismi kullan: baþlýk kaydetme" -#: src/lang.c:2323 +#: src/lang.c:2344 #, fuzzy msgid "# If ON articles/threads with Archive-name: in mail header will\n" "# be automatically saved with the Archive-name & part/patch no.\n" msgstr "# ON durumdaysa Arþiv ismi ile makaleleri/iç parçacýklarý: posta baþlýðý\n" "# will Arþiv ismi &\n" -#: src/lang.c:2328 +#: src/lang.c:2349 #, fuzzy msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Kaydedilmiþ makaleleri /iç parçacýklarý okunmuþ olarak iþaretle. " "büyük küçük harf, kümeler, iptal et." -#: src/lang.c:2329 +#: src/lang.c:2350 #, fuzzy msgid "Mark saved articles/threads as read" msgstr "Kaydedilmiþ makaleleri /iç parçacýklarý okunmuþ olarak iþaretle" -#: src/lang.c:2330 +#: src/lang.c:2351 #, fuzzy msgid "# If ON mark articles that are saved as read\n" msgstr "# ON durumdaysa kaydedilmiþ makaleleri okunmuþ olarak iþaretle\n" -#: src/lang.c:2334 +#: src/lang.c:2355 #, fuzzy msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Kaydedilmiþ makaleler için iþlem gönder (örn. ekleri çýkart) for saved " "articles." -#: src/lang.c:2335 +#: src/lang.c:2356 #, fuzzy msgid "Post process saved articles" msgstr "Kaydedilmiþ makaleleri gönder" -#: src/lang.c:2336 +#: src/lang.c:2357 #, fuzzy msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# Possible values are (the default is marked with *):\n" @@ -6783,108 +6824,108 @@ msgid "# Perform post processing (saving msgstr "# Kaydedilmiþ makaleler gönderme iþlemini bitir.\n" "# 0=(evet) 1=(hayýr) 2=(kabuk arþivleri bul (shar) only)\n" -#: src/lang.c:2345 +#: src/lang.c:2366 #, fuzzy msgid "Process only unread articles" msgstr "Sadece okunmayan makaleleri iþle" -#: src/lang.c:2346 +#: src/lang.c:2367 #, fuzzy msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "# ON durumundaysa okunmamýþ makaleleri sadece kaydet/yazdýr/ilet/postala " "(imlenmiþ makaleler hariç tutulur)\n" -#: src/lang.c:2351 +#: src/lang.c:2372 #, fuzzy msgid "Print all or just part of header. toggles & sets." msgstr "Baþlýðýn tümünü ya da bir kýsmýný yazdýr. deðiþtirir & ayarlar." -#: src/lang.c:2352 +#: src/lang.c:2373 #, fuzzy msgid "Print all headers when printing" msgstr "Yazdýrýrken tüm baþlýklarý yazdýr" -#: src/lang.c:2353 +#: src/lang.c:2374 #, fuzzy msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "# On durumundaysa makale baþlýðýnýn tümünü deðilse sadece önemli olanlarý " "yazdýr\n" -#: src/lang.c:2357 +#: src/lang.c:2378 #, fuzzy msgid "The printer program with options that is to be used to print articles/threads." msgstr "Makaleleri/parçacýklarý yazdýrmak için kullanýlacak seçenekli yazýcý programý." -#: src/lang.c:2358 +#: src/lang.c:2379 #, fuzzy msgid "Printer program with options" msgstr "Seçenekli yazýcý programý" -#: src/lang.c:2359 +#: src/lang.c:2380 #, fuzzy msgid "# Print program with parameters used to print articles/threads\n" msgstr "# Makaleleri/iþ parçacýklarý yazdýrmak için parameterli yazýcý program " "kullan\n" -#: src/lang.c:2365 +#: src/lang.c:2386 #, fuzzy msgid "Force redraw after certain commands" msgstr "Kesin komutlardan sonra ekrandaki çizimin yenilenmesini güçlendir" -#: src/lang.c:2366 +#: src/lang.c:2387 #, fuzzy msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "# ON durumdaysa ekrandaki çizimin yenilenmesi bazý dýþ komutlardan sonra " "tamamlanacak\n" -#: src/lang.c:2370 +#: src/lang.c:2391 #, fuzzy msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Satýr kaydýrarak düzenleciyi baþlat. büyük küçük harf, kümeler, " " iptal et." -#: src/lang.c:2371 +#: src/lang.c:2392 #, fuzzy msgid "Start editor with line offset" msgstr "Düzenleyiciyi satýr konumu ile baþlat" -#: src/lang.c:2372 +#: src/lang.c:2393 #, fuzzy msgid "# If ON editor will be started with cursor offset into the file\n" "# otherwise the cursor will be positioned at the first line\n" msgstr "# ON düzenleyicir dosyadaki imleç kaydýrýcýlarda açýlacak\n" "# aksi takdirde imleç ilk satýrda yer alacak\n" -#: src/lang.c:2377 +#: src/lang.c:2398 #, fuzzy msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "Düzenleyici için %E, dosya adý için %F, satýr numarasý için %N, kümelemek " "için yazýn." -#: src/lang.c:2378 +#: src/lang.c:2399 #, fuzzy msgid "Invocation of your editor" msgstr "Düzenleyicinizin yürütülmesi" -#: src/lang.c:2379 +#: src/lang.c:2400 #, fuzzy, c-format msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "# Parametrelerle birlikte düzenleyici satýrý biçimi\n" "# %%E Düzenleyici %%F Dosya adý %%N Satýr numarasý\n" -#: src/lang.c:2384 +#: src/lang.c:2405 #, fuzzy msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "Dýþ inew programlarý için isim ve seçenekleri, --iç inew programlarý için " "içseli girin" -#: src/lang.c:2385 +#: src/lang.c:2406 #, fuzzy msgid "External inews" msgstr "Dýþ inew programlarý" -#: src/lang.c:2386 +#: src/lang.c:2407 #, fuzzy msgid "# If --internal use the built in mini inews for posting via NNTP\n" "# otherwise use an external inews program\n" @@ -6892,18 +6933,18 @@ msgstr "# Eðer --içsel ise NNTP yoluyla "programlarýný kullanýn\n" "# deðilse bir dýþ inew programý kullanýn\n" -#: src/lang.c:2390 +#: src/lang.c:2411 #, fuzzy msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "Posta gönderici için %M, konu için %S, gönderilen için %T, dosya adý için %F, " "kümelemek için yazýn." -#: src/lang.c:2391 +#: src/lang.c:2412 #, fuzzy msgid "Invocation of your mail command" msgstr "Posta komutunuzun yürütülmesi" -#: src/lang.c:2392 +#: src/lang.c:2413 #, fuzzy, c-format msgid "# Format of mailer line including parameters\n" "# %%M Mailer %%S Subject %%T To %%F Filename\n" @@ -6915,12 +6956,12 @@ msgstr "# Parametrelerle birlikte gönder "F\n" "# ie. elm etkileþimli : elm -i %%F -s \"%%S\" \"%%T\"\n" -#: src/lang.c:2400 +#: src/lang.c:2421 #, fuzzy msgid "Use interactive mail reader" msgstr "Etkileþimli posta okuyucu kullan" -#: src/lang.c:2401 +#: src/lang.c:2422 msgid "# Interactive mailreader\n" "# Possible values are (the default is marked with *):\n" "# * 0 = no interactive mailreader\n" @@ -6928,71 +6969,71 @@ msgid "# Interactive mailreader\n" "# 2 = use interactive mailreader without headers in file\n" msgstr "" -#: src/lang.c:2410 +#: src/lang.c:2431 #, fuzzy msgid "Remove ~/.article after posting" msgstr "Kaldýr ~/.article sonra makale" -#: src/lang.c:2411 +#: src/lang.c:2432 #, fuzzy msgid "# If ON remove ~/.article after posting.\n" msgstr "# ON durumundaysa kaldýr ~/.gönderimden sonra makale.\n" -#: src/lang.c:2415 +#: src/lang.c:2436 #, fuzzy msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Tüm gönderilen makaleler için dosya adý, ayarlar, dosya adý " "yok=kaydetmeyin." -#: src/lang.c:2416 +#: src/lang.c:2437 #, fuzzy msgid "Filename for posted articles" msgstr "Gönderilen makaleler için dosya adý" -#: src/lang.c:2417 +#: src/lang.c:2438 #, fuzzy msgid "# Filename where to keep all postings (default posted)\n" "# If no filename is set then postings will not be saved\n" msgstr "# Postalarýn tutunacak dosyaadý (gönderilmiþ varsayýlan)\n" "# Dosyaadý yoksa hiçbir posta kaydedilmeyecek\n" -#: src/lang.c:2422 +#: src/lang.c:2443 #, fuzzy msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Baþarýsýz makaleleri tut ~/ölü.makale. büyük küçük harf & " "kümeleri." -#: src/lang.c:2423 +#: src/lang.c:2444 #, fuzzy msgid "Keep failed arts in ~/dead.articles" msgstr "Baþarýsýz makaleleri tut ~/ölü.makale" -#: src/lang.c:2424 +#: src/lang.c:2445 #, fuzzy msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "# If ON gönderilemeyen bütün postalarý tut ~/ölü.makale\n" -#: src/lang.c:2428 +#: src/lang.c:2449 #, fuzzy msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Abone olmayan gruplarý çýkart .newsrc" -#: src/lang.c:2429 +#: src/lang.c:2450 #, fuzzy msgid "No unsubscribed groups in newsrc" msgstr "Abone olmayan grup yok newsrc" -#: src/lang.c:2430 +#: src/lang.c:2451 #, fuzzy msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# If ON abone olmamýþ gruplarý çýkart newsrc\n" -#: src/lang.c:2435 +#: src/lang.c:2456 #, fuzzy msgid "Remove bogus groups from newsrc" msgstr "Bogus gruplarý kaldýr newsrc" -#: src/lang.c:2436 +#: src/lang.c:2457 #, fuzzy msgid "# What to do with bogus groups in newsrc file\n" "# Possible values are (the default is marked with *):\n" @@ -7002,66 +7043,66 @@ msgid "# What to do with bogus groups in msgstr "# newsrc dosyasýnda olan bogus gruplara ne yapýlsýn\n" "# 0=(Koru) 1=(Kaldýr) 2=(Highlight with D on selection screen).\n" -#: src/lang.c:2444 +#: src/lang.c:2465 #, fuzzy msgid "Enter number of seconds until active file will be reread. sets." msgstr "Aktif dosya tekrar okunana kadar saniye miktarýný girin. ayarlar." -#: src/lang.c:2445 +#: src/lang.c:2466 #, fuzzy msgid "Interval in secs to reread active" msgstr "yeniden etkin kýlma saniye aralýðý" -#: src/lang.c:2446 +#: src/lang.c:2467 #, fuzzy msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "# Aktif dosyalar okunurken saniyeler süren zaman aralýðý (0=asla)\n" -#: src/lang.c:2451 +#: src/lang.c:2472 #, fuzzy msgid "Reconnect to server automatically" msgstr "Sunucuya otomatik olarak baðlan" -#: src/lang.c:2452 +#: src/lang.c:2473 #, fuzzy msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "# ON konumunda ise baðlantý kesilirse NNTP sunucusuna otomatik olarak tekrar " "baðlan\n" -#: src/lang.c:2456 +#: src/lang.c:2477 #, fuzzy msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "NNTP giriþ sayfalarýnýn yerel kopyalarýný yarat. deðiþtirir & " "ayarlar." -#: src/lang.c:2457 +#: src/lang.c:2478 #, fuzzy msgid "Cache NNTP overview files locally" msgstr "Að Haberleri Aktarma Protokolü önbelleði yerel olarak giriþ dosyalarý" -#: src/lang.c:2458 +#: src/lang.c:2479 #, fuzzy msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "# On durumundaysa, NNTP giriþ dosyalarýnýn yerel kopyalarýný yarat.\n" -#: src/lang.c:2462 +#: src/lang.c:2483 #, fuzzy msgid "Enter format string. sets, cancels." msgstr "Okunan makaleleri imlemek için karakter girin. yarlar, iptal eder." -#: src/lang.c:2463 +#: src/lang.c:2484 msgid "Format string for display of dates" msgstr "" -#: src/lang.c:2464 +#: src/lang.c:2485 msgid "# Format string for date representation\n" msgstr "" -#: src/lang.c:2470 +#: src/lang.c:2491 msgid "Unicode normalization form" msgstr "" -#: src/lang.c:2471 +#: src/lang.c:2492 msgid "# Unicode normalization form\n" "# Possible values are (the default is marked with *):\n" "# 0 = None\n" @@ -7071,11 +7112,11 @@ msgid "# Unicode normalization form\n" "# 4 = NFD\n" msgstr "" -#: src/lang.c:2483 +#: src/lang.c:2504 msgid "Render BiDi" msgstr "" -#: src/lang.c:2484 +#: src/lang.c:2505 msgid "# If ON, bi-directional text is rendered by tin\n" msgstr "" @@ -7101,12 +7142,12 @@ msgid "\n" msgstr "\n" "Sunucu süresi doldu, tekrar baðlanmaya çalýþýyor # %d\n" -#: src/nntplib.c:834 src/nntplib.c:1621 +#: src/nntplib.c:834 src/nntplib.c:1644 #, fuzzy msgid "Rejoin current group\n" msgstr "Þu anki gruba tekrar katýl\n" -#: src/nntplib.c:841 src/nntplib.c:1628 +#: src/nntplib.c:841 src/nntplib.c:1651 #, fuzzy, c-format msgid "Read (%s)\n" msgstr "Oku (%s)\n" @@ -7123,7 +7164,7 @@ msgstr "Son komutu tekrr yolla (%s)\n" #. * - use some sort of pager? #. * - -> lang.c #. -#: src/nntplib.c:1760 +#: src/nntplib.c:1783 msgid "MOTD: " msgstr "" @@ -7132,26 +7173,26 @@ msgstr "" msgid "couldn't expand %s\n" msgstr "%s geniþletilemedi\n" -#: src/post.c:1171 +#: src/post.c:1134 #, c-format msgid "Line %d is longer than 998 octets and should be folded, but\n" "encoding is neither set to %s nor to %s\n" msgstr "" -#: src/post.c:1176 +#: src/post.c:1139 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is set to %s without enabling MIME_BREAK_LONG_LINES or\n" "posting doesn't contain any 8bit chars and thus folding won't happen\n" msgstr "" -#: src/post.c:1178 +#: src/post.c:1141 #, c-format msgid "Line %d is longer than 998 octets, and should be folded, but\n" "encoding is not set to %s\n" msgstr "" -#: src/post.c:1993 +#: src/post.c:1960 #, fuzzy, c-format msgid "Posting: %.*s ..." msgstr "Gönderiliyor: %.*s ..." @@ -7193,7 +7234,7 @@ msgid "This message has been composed in "\n" msgstr "" -#: src/save.c:958 +#: src/save.c:964 msgid "bytes" msgstr "bayt" diff -Nurp tin-1.9.1/src/Makefile.in tin-1.9.2/src/Makefile.in --- tin-1.9.1/src/Makefile.in 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/Makefile.in 2006-12-21 14:41:19.000000000 +0100 @@ -131,7 +131,6 @@ HFILES = \ $(INCDIR)/tinrc.h \ $(INCDIR)/tnntp.h \ $(INCDIR)/version.h -# $(INCDIR)/config.h CFILES = \ $(SRCDIR)/active.c \ @@ -474,7 +473,7 @@ makecfg$X : $(SRCDIR)/makecfg.c \ $(INCDIR)/tin.h \ ../include/autoconf.h @SHOW_CC@ - @ECHO_CC@$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -o $@ makecfg.c #$(BUILD_LIBS) + @ECHO_CC@$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -o $@ $(SRCDIR)/makecfg.c #$(BUILD_LIBS) TIN_DEP = \ Makefile \ diff -Nurp tin-1.9.1/src/active.c tin-1.9.2/src/active.c --- tin-1.9.1/src/active.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/active.c 2006-12-22 02:41:52.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2004-06-30 * Notes : * - * Copyright (c) 1992-2006 Iain Lea + * Copyright (c) 1992-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/art.c tin-1.9.2/src/art.c --- tin-1.9.1/src/art.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/art.c 2006-12-22 02:41:53.000000000 +0100 @@ -3,10 +3,10 @@ * Module : art.c * Author : I.Lea & R.Skrenta * Created : 1991-04-01 - * Updated : 2005-06-30 + * Updated : 2006-06-21 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -70,6 +70,8 @@ static int from_comp_asc(t_comptype p1, static int from_comp_desc(t_comptype p1, t_comptype p2); static int global_get_multiparts(int aindex, MultiPartInfo **malloc_and_setme_info); static int global_look_for_multipart_info(int aindex, MultiPartInfo *setme, char start, char stop, int *offset); +static int last_date_comp_base_asc(t_comptype p1, t_comptype p2); +static int last_date_comp_base_desc(t_comptype p1, t_comptype p2); static int lines_comp_asc(t_comptype p1, t_comptype p2); static int lines_comp_desc(t_comptype p1, t_comptype p2); static int read_art_headers(struct t_group *group, int total, long top); @@ -84,6 +86,7 @@ static long find_first_unread(struct t_g static long setup_hard_base(struct t_group *group); static t_bool parse_headers(FILE *fp, struct t_article *h); static t_compfunc eval_sort_arts_func(unsigned int sort_art_type); +static time_t get_last_posting_date(long n); static void sort_base(unsigned int sort_threads_type); static void thread_by_multipart(void); static void thread_by_percentage(struct t_group *group); @@ -768,7 +771,8 @@ thread_by_percentage( * we count differences in the length of the strings against * them matching. */ - slen = strlen(arts[base[root_num]].subject); + if (!(slen = strlen(arts[base[root_num]].subject))) + slen++; unmatched += abs(slen - strlen(arts[i].subject)); if ((unmatched * 100) / slen > percentage) { /* @@ -1168,11 +1172,19 @@ static void sort_base( unsigned int sort_threads_type) { - switch (sort_threads_type) { /* this switch doesn't look very usefull */ + switch (sort_threads_type) { case SORT_THREADS_BY_SCORE_DESCEND: case SORT_THREADS_BY_SCORE_ASCEND: qsort(base, (size_t) grpmenu.max, sizeof(long), score_comp_base); break; + + case SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND: + qsort(base, (size_t) grpmenu.max, sizeof(long), last_date_comp_base_desc); + break; + + case SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND: + qsort(base, (size_t) grpmenu.max, sizeof(long), last_date_comp_base_asc); + break; } } @@ -2166,6 +2178,61 @@ score_comp_base( } +/* + * Compare the date of the last posted article of two threads. + * Used for sorting base[]. + */ +static int +last_date_comp_base_desc( + t_comptype p1, + t_comptype p2) +{ + time_t s1_last = get_last_posting_date(*(const long *) p1); + time_t s2_last = get_last_posting_date(*(const long *) p2); + + if (s2_last < s1_last) + return -1; + + if (s2_last > s1_last) + return 1; + + return 0; +} + + +static int +last_date_comp_base_asc( + t_comptype p1, + t_comptype p2) +{ + time_t s1_last = get_last_posting_date(*(const long *) p1); + time_t s2_last = get_last_posting_date(*(const long *) p2); + + if (s2_last > s1_last) + return -1; + + if (s2_last < s1_last) + return 1; + + return 0; +} + + +static time_t get_last_posting_date( + long n) +{ + long i; + time_t last = (time_t) 0; + + for (i = n; i >= 0; i = arts[i].thread) { + if (arts[i].date > last) + last = arts[i].date; + } + + return last; +} + + void set_article( struct t_article *art) diff -Nurp tin-1.9.1/src/attrib.c tin-1.9.2/src/attrib.c --- tin-1.9.1/src/attrib.c 2006-02-15 22:22:01.000000000 +0100 +++ tin-1.9.2/src/attrib.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : attrib.c * Author : I. Lea * Created : 1993-12-01 - * Updated : 2006-02-15 + * Updated : 2006-06-21 * Notes : Group attribute routines * - * Copyright (c) 1993-2006 Iain Lea + * Copyright (c) 1993-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -351,7 +351,7 @@ read_attributes_file( MATCH_BOOLEAN("show_only_unread=", ATTRIB_SHOW_ONLY_UNREAD); MATCH_STRING("sigfile=", ATTRIB_SIGFILE); MATCH_INTEGER("sort_art_type=", ATTRIB_SORT_ART_TYPE, SORT_ARTICLES_BY_LINES_ASCEND); - MATCH_INTEGER("sort_threads_type=", ATTRIB_SORT_THREADS_TYPE, SORT_THREADS_BY_SCORE_DESCEND); + MATCH_INTEGER("sort_threads_type=", ATTRIB_SORT_THREADS_TYPE, SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND); break; case 't': @@ -712,6 +712,9 @@ write_attributes_file( SORT_THREADS_BY_NOTHING, _(txt_sort_t_type[SORT_THREADS_BY_NOTHING]), SORT_THREADS_BY_SCORE_DESCEND, _(txt_sort_t_type[SORT_THREADS_BY_SCORE_DESCEND]), SORT_THREADS_BY_SCORE_ASCEND, _(txt_sort_t_type[SORT_THREADS_BY_SCORE_ASCEND])); + fprintf(fp, "# %d=%s, %d=%s\n", + SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND, _(txt_sort_t_type[SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND]), + SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND, _(txt_sort_t_type[SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND])); fprintf(fp, _("# post_proc_type=NUM\n")); fprintf(fp, "# %d=%s, %d=%s, %d=%s\n", POST_PROC_NO, _(txt_post_process_type[POST_PROC_NO]), diff -Nurp tin-1.9.1/src/auth.c tin-1.9.2/src/auth.c --- tin-1.9.1/src/auth.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/auth.c 2006-12-22 02:41:54.000000000 +0100 @@ -7,7 +7,7 @@ * Notes : Routines to authenticate to a news server via NNTP. * DON'T USE get_respcode() THROUGHOUT THIS CODE. * - * Copyright (c) 1997-2006 Dirk Nimmich + * Copyright (c) 1997-2007 Dirk Nimmich * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,9 +59,9 @@ static t_bool authinfo_original(char *se /* - * Process AUTHINFO GENERIC method. + * Process AUTHINFO GENERIC method, deprecated by RFC 4643. * TRUE means succeeded. - * FALSE means failed + * FALSE means failed. */ static t_bool authinfo_generic( diff -Nurp tin-1.9.1/src/charset.c tin-1.9.2/src/charset.c --- tin-1.9.1/src/charset.c 2006-02-22 01:31:06.000000000 +0100 +++ tin-1.9.2/src/charset.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : charset.c * Author : M. Kuhn, T. Burmester * Created : 1993-12-10 - * Updated : 2006-02-21 + * Updated : 2006-05-30 * Notes : ISO to ascii charset conversion routines * - * Copyright (c) 1993-2006 Markus Kuhn + * Copyright (c) 1993-2007 Markus Kuhn * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -427,45 +427,3 @@ wconvert_to_printable( return wbuf; } #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - - -/* - * Same as convert_to_printable() but allows Backspace (ASCII 8), TAB (ASCII - * 9), and FormFeed (ASCII 12) according to son of RFC 1036 section 4.4; - * LineFeed (ASCII 10) and CarriageReturn (ASCII 13) are allowed, too. - * - * NOTES: don't make wc a wint_t as libutf8 (at least version 0.8) - * sometimes fails to propper convert (wchar_t) 0 to (wint_t) 0 - * and thus loop termination fails. - */ -char * -convert_body2printable( - char *buf) -{ -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - char *buffer; - wchar_t *wc, *wbuffer; - size_t len = strlen(buf) + 1; - - if ((wbuffer = char2wchar_t(buf)) != NULL) { - for (wc = wbuffer; *wc; wc++) { - if (!(iswprint((wint_t) *wc) || *wc == (wchar_t) 8 || *wc == (wchar_t) 9 || *wc == (wchar_t) 10 || *wc == (wchar_t) 12 || *wc == (wchar_t) 13 || (IS_LOCAL_CHARSET("Big5") && *wc == (wchar_t) 27))) - *wc = (wchar_t) '?'; - } - if ((buffer = wchar_t2char(wbuffer)) != NULL) { - strncpy(buf, buffer, len); - buf[len - 1] = '\0'; - free(buffer); - } - free(wbuffer); - } -#else - unsigned char *c; - - for (c = (unsigned char *) buf; *c; c++) { - if (!(my_isprint(*c) || *c == 8 || *c == 9 || *c == 10 || *c == 12 || *c == 13 || (IS_LOCAL_CHARSET("Big5") && *c == 27))) - *c = '?'; - } -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - return buf; -} diff -Nurp tin-1.9.1/src/color.c tin-1.9.2/src/color.c --- tin-1.9.1/src/color.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/color.c 2006-12-22 02:41:54.000000000 +0100 @@ -11,7 +11,7 @@ * Notes : This are the basic function for ansi-color * and word highlighting * - * Copyright (c) 1995-2006 Roland Rosenfeld + * Copyright (c) 1995-2007 Roland Rosenfeld * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/config.c tin-1.9.2/src/config.c --- tin-1.9.1/src/config.c 2006-02-15 22:19:37.000000000 +0100 +++ tin-1.9.2/src/config.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : config.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-06-28 * Notes : Configuration file routines * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -406,6 +406,9 @@ read_config_file( if (match_integer(buf, "getart_limit=", &tinrc.getart_limit, 0)) break; + if (match_integer(buf, "goto_next_unread=", &tinrc.goto_next_unread, NUM_GOTO_NEXT_UNREAD)) + break; + if (match_integer(buf, "groupname_max_length=", &tinrc.groupname_max_length, 132)) break; @@ -571,9 +574,6 @@ read_config_file( if (match_boolean(buf, "prompt_followupto=", &tinrc.prompt_followupto)) break; - if (match_boolean(buf, "pgdn_goto_next=", &tinrc.pgdn_goto_next)) - break; - break; case 'q': @@ -658,7 +658,7 @@ read_config_file( if (match_integer(buf, "sort_article_type=", &tinrc.sort_article_type, SORT_ARTICLES_BY_LINES_ASCEND)) break; - if (match_integer(buf, "sort_threads_type=", &tinrc.sort_threads_type, SORT_THREADS_BY_SCORE_ASCEND)) + if (match_integer(buf, "sort_threads_type=", &tinrc.sort_threads_type, SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND)) break; if (match_integer(buf, "scroll_lines=", &tinrc.scroll_lines, 0)) @@ -695,9 +695,6 @@ read_config_file( if (match_string(buf, "strip_was_regex=", tinrc.strip_was_regex, sizeof(tinrc.strip_was_regex))) break; - if (match_boolean(buf, "space_goto_next_unread=", &tinrc.space_goto_next_unread)) - break; - break; case 't': @@ -710,9 +707,6 @@ read_config_file( if (match_integer(buf, "thread_score=", &tinrc.thread_score, THREAD_SCORE_WEIGHT)) break; - if (match_boolean(buf, "tab_goto_next_unread=", &tinrc.tab_goto_next_unread)) - break; - if (match_boolean(buf, "tex2iso_conv=", &tinrc.tex2iso_conv)) break; @@ -761,6 +755,15 @@ read_config_file( break; + case 'v': + if (match_string(buf, "verbatim_begin_regex=", tinrc.verbatim_begin_regex, sizeof(tinrc.verbatim_begin_regex))) + break; + + if (match_string(buf, "verbatim_end_regex=", tinrc.verbatim_end_regex, sizeof(tinrc.verbatim_end_regex))) + break; + + break; + case 'w': if (match_integer(buf, "wildcard=", &tinrc.wildcard, 2)) break; @@ -906,14 +909,8 @@ write_config_file( fprintf(fp, _(txt_kill_level.tinrc)); fprintf(fp, "kill_level=%d\n\n", tinrc.kill_level); - fprintf(fp, _(txt_tab_goto_next_unread.tinrc)); - fprintf(fp, "tab_goto_next_unread=%s\n\n", print_boolean(tinrc.tab_goto_next_unread)); - - fprintf(fp, _(txt_space_goto_next_unread.tinrc)); - fprintf(fp, "space_goto_next_unread=%s\n\n", print_boolean(tinrc.space_goto_next_unread)); - - fprintf(fp, _(txt_pgdn_goto_next.tinrc)); - fprintf(fp, "pgdn_goto_next=%s\n\n", print_boolean(tinrc.pgdn_goto_next)); + fprintf(fp, _(txt_goto_next_unread.tinrc)); + fprintf(fp, "goto_next_unread=%d\n\n", tinrc.goto_next_unread); fprintf(fp, _(txt_scroll_lines.tinrc)); fprintf(fp, "scroll_lines=%d\n\n", tinrc.scroll_lines); @@ -1055,6 +1052,11 @@ write_config_file( fprintf(fp, _(txt_strip_was_regex.tinrc)); fprintf(fp, "strip_was_regex=%s\n\n", tinrc.strip_was_regex); + fprintf(fp, _(txt_verbatim_begin_regex.tinrc)); + fprintf(fp, "verbatim_begin_regex=%s\n\n", tinrc.verbatim_begin_regex); + fprintf(fp, _(txt_verbatim_end_regex.tinrc)); + fprintf(fp, "verbatim_end_regex=%s\n\n", tinrc.verbatim_end_regex); + fprintf(fp, _(txt_show_signatures.tinrc)); fprintf(fp, "show_signatures=%s\n\n", print_boolean(tinrc.show_signatures)); @@ -1680,14 +1682,18 @@ rc_update( t_bool confirm_to_quit = FALSE; t_bool confirm_action = FALSE; t_bool compress_quotes = FALSE; + t_bool set_goto_next_unread = FALSE; t_bool hide_uue = FALSE; t_bool keep_posted_articles = FALSE; + t_bool pgdn_goto_next = FALSE; t_bool quote_empty_lines = FALSE; t_bool quote_signatures = FALSE; t_bool save_to_mmdf_mailbox = FALSE; t_bool show_last_line_prev_page = FALSE; t_bool show_lines = FALSE; t_bool show_score = FALSE; + t_bool space_goto_next_unread = FALSE; + t_bool tab_goto_next_unread = FALSE; t_bool thread_articles = FALSE; t_bool thread_perc = FALSE; t_bool use_builtin_inews = FALSE; @@ -1729,6 +1735,13 @@ rc_update( break; break; + case 'p': + if (match_boolean(buf, "pgdn_goto_next=", &pgdn_goto_next)) { + set_goto_next_unread = TRUE; + break; + } + break; + case 'q': if (match_boolean(buf, "quote_signatures=" , "e_signatures)) break; @@ -1737,6 +1750,10 @@ rc_update( break; case 's': + if (match_boolean(buf, "space_goto_next_unread=", &space_goto_next_unread)) { + set_goto_next_unread = TRUE; + break; + } if (match_boolean(buf, "save_to_mmdf_mailbox=", &save_to_mmdf_mailbox)) break; if (match_boolean(buf, "show_last_line_prev_page=", &show_last_line_prev_page)) @@ -1748,6 +1765,10 @@ rc_update( break; case 't': + if (match_boolean(buf, "tab_goto_next_unread=", &tab_goto_next_unread)) { + set_goto_next_unread = TRUE; + break; + } if (match_boolean(buf, "thread_articles=", &thread_articles)) break; break; @@ -1774,6 +1795,14 @@ rc_update( if (!use_getart_limit) tinrc.getart_limit = 0; + if (set_goto_next_unread) { + tinrc.goto_next_unread = 0; + if (pgdn_goto_next || space_goto_next_unread) + tinrc.goto_next_unread |= GOTO_NEXT_UNREAD_PGDN; + if (tab_goto_next_unread) + tinrc.goto_next_unread |= GOTO_NEXT_UNREAD_TAB; + } + if (hide_uue) tinrc.hide_uue = 1; diff -Nurp tin-1.9.1/src/cook.c tin-1.9.2/src/cook.c --- tin-1.9.1/src/cook.c 2006-03-11 13:35:26.000000000 +0100 +++ tin-1.9.2/src/cook.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : cook.c * Author : J. Faultless * Created : 2000-03-08 - * Updated : 2006-03-11 + * Updated : 2006-05-30 * Notes : Split from page.c * - * Copyright (c) 2000-2006 Jason Faultless + * Copyright (c) 2000-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,6 +59,9 @@ static t_bool header_wanted(const char * static t_part *new_uue(t_part **part, char *name); static void process_text_body_part(t_bool wrap_lines, FILE *in, t_part *part, int hide_uue, int tabs); static void put_cooked(size_t buf_len, t_bool wrap_lines, int flags, const char *fmt, ...); +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + static t_bool wexpand_ctrl_chars(wchar_t **wline, size_t *length, size_t lcook_width); +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ #ifdef DEBUG_ART static void dump_cooked(void); #endif /* DEBUG_ART */ @@ -82,58 +85,107 @@ expand_ctrl_chars( int *length, size_t lcook_width) { + t_bool ctrl_L = FALSE; +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + wchar_t *wline = char2wchar_t(*line); + size_t wlen; + + /* + * remove the assert() before release + * it should help us find problems with wide-char strings + * in the development branch + */ + assert (wline != NULL); + wlen = wcslen(wline); + ctrl_L = wexpand_ctrl_chars(&wline, &wlen, lcook_width); + free(*line); + *line = wchar_t2char(wline); + free(wline); + assert (line != NULL); + *length = strlen(*line); +#else int curr_len = LEN; int i = 0, j; char *buf = my_malloc(curr_len); char *c; - t_bool ctrl_L = FALSE, resize = FALSE; c = *line; while (*c) { - if (resize) { + if (i > curr_len - 3) { curr_len <<= 1; buf = my_realloc(buf, curr_len); - resize = FALSE; } - if (*c == '\t') { /* expand tabs */ + if (*c == '\t') { /* expand tabs */ /* j = ((i + lcook_width) / lcook_width) * lcook_width; */ j = i + lcook_width - (i % lcook_width); - if (j > curr_len - 2) { - resize = TRUE; - continue; - } for (; i < j; i++) buf[i] = ' '; + } else if (((*c) & 0xFF) < ' ' && *c != '\n' && (!IS_LOCAL_CHARSET("Big5") || *c != 27)) { /* literal ctrl chars */ + buf[i++] = '^'; + buf[i++] = ((*c) & 0xFF) + '@'; + if (*c == '\f') /* ^L detected */ + ctrl_L = TRUE; } else { - if (((*c) & 0xFF) < ' ' && *c != '\n' && (!IS_LOCAL_CHARSET("Big5") || *c != 27)) { /* literal ctrl chars */ - if (i > curr_len - 4) { - resize = TRUE; - continue; - } - buf[i++] = '^'; - buf[i++] = ((*c) & 0xFF) + '@'; - if (*c == '\f') /* ^L detected */ - ctrl_L = TRUE; - } else { - if (i > curr_len - 3) { - resize = TRUE; - continue; - } + if (!my_isprint(*c) && *c != '\n') + buf[i++] = '?'; + else buf[i++] = *c; - } } c++; } - /* put_cooked() requires a newline at the end of the line */ - if (buf[i - 1] != '\n') - buf[i++] = '\n'; /* Force last char of string to be \n */ buf[i] = '\0'; *length = i + 1; *line = my_realloc(*line, *length); strcpy(*line, buf); free(buf); +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ + return ctrl_L; +} + + +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) +static t_bool +wexpand_ctrl_chars( + wchar_t **wline, + size_t *length, + size_t lcook_width) +{ + size_t cur_len = LEN, i = 0, j; + wchar_t *wbuf = my_malloc(cur_len * sizeof(wchar_t)); + wchar_t *wc; + t_bool ctrl_L = FALSE; + + wc = *wline; + while (*wc) { + if (i > cur_len - 3) { + cur_len <<= 1; + wbuf = my_realloc(wbuf, cur_len * sizeof(wchar_t)); + } + if (*wc == '\t') { /* expand_tabs */ + j = i + lcook_width - (i % lcook_width); + for (; i < j; i++) + wbuf[i] = ' '; + } else if (*wc < ' ' && *wc != '\n' && (!IS_LOCAL_CHARSET("Big5") || *wc != 27)) { /* literal ctrl chars */ + wbuf[i++] = '^'; + wbuf[i++] = *wc + '@'; + if (*wc == '\f') /* ^L detected */ + ctrl_L = TRUE; + } else { + if (!iswprint((wint_t) *wc) && *wc != '\n') + wbuf[i++] = '?'; + else + wbuf[i++] = *wc; + } + wc++; + } + wbuf[i] = '\0'; + *length = i + 1; + *wline = my_realloc(*wline, *length * sizeof(wchar_t)); + wcscpy(*wline, wbuf); + free(wbuf); return ctrl_L; } +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ /* @@ -552,13 +604,6 @@ process_text_body_part( if (MATCH_REGEX(news_regex, line, len)) flags |= C_NEWS; - /* - * Basically, c_b2p() does: if (!(my_isprint(*c) || *c==8 || *c==9 || *c==12)) - * It is only used here - * How about if !isprint() && !isctrl() - expand_ctrl_chars is done at display time. - * TODO: integrate into expand_ctrl_chars - */ - convert_body2printable(line); if (expand_ctrl_chars(&line, &max_line_len, tabs)) flags |= C_CTRLL; /* Line contains form-feed */ put_cooked(max_line_len, wrap_lines && (!IS_LOCAL_CHARSET("Big5")), flags, "%s", line); @@ -692,7 +737,7 @@ cook_article( if (header_wanted(line)) { /* Put cooked data */ int i = LEN; - char *l = my_strdup(convert_body2printable(rfc1522_decode(line))); /* FIXME: don't decode addr-part of From:/Cc:/ etc.pp. */ + char *l = my_strdup(rfc1522_decode(line)); /* FIXME: don't decode addr-part of From:/Cc:/ etc.pp. */ header_put = TRUE; expand_ctrl_chars(&l, &i, tabs); diff -Nurp tin-1.9.1/src/debug.c tin-1.9.2/src/debug.c --- tin-1.9.1/src/debug.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/debug.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-05-04 * Notes : debug routines * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/envarg.c tin-1.9.2/src/envarg.c --- tin-1.9.1/src/envarg.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/envarg.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 1993-03-10 * Notes : Adds default options from environment to command line * - * Copyright (c) 1991-2006 Bill Davidson + * Copyright (c) 1991-2007 Bill Davidson * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/feed.c tin-1.9.2/src/feed.c --- tin-1.9.1/src/feed.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/feed.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : feed.c * Author : I. Lea * Created : 1991-08-31 - * Updated : 2005-07-02 + * Updated : 2006-09-02 * Notes : provides same interface to mail,pipe,print,save & repost commands * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -66,6 +66,7 @@ struct t_counters { * Local prototypes */ static char *get_save_filename(struct t_group *group, int function, char *filename, int filelen, int respnum); +static t_bool expand_feed_filename(char *outpath, const char *path); static t_bool feed_article(int art, int function, struct t_counters *counter, t_bool use_current, const char *data, struct t_group *group); static t_function get_feed_key(int function, int level, struct t_group *group, struct t_art_stat *thread, int respnum); static t_function get_post_proc_type(void); @@ -147,6 +148,35 @@ get_save_filename( /* + * Generate a path/filename to save to, using 'path' as input. + * The pathname is stored in 'outpath', which should be PATH_LEN in size + * Expand metacharacters and use defaults as needed. + * Return TRUE if the path is a mailbox, or FALSE otherwise. + */ +static t_bool +expand_feed_filename( + char *outpath, + const char *path) +{ + int ret = strfpath(path, outpath, PATH_LEN, curr_group); + + /* + * If no path exists or the above failed in some way, use sensible defaults + * Put the generic path into 'outpath' + */ + if ((ret == 0) || !(strrchr(outpath, DIRSEP))) { + char buf[PATH_LEN]; + + if (!strfpath(curr_group->attribute->savedir, buf, sizeof(buf), curr_group)) + joinpath(buf, homedir, DEFAULT_SAVEDIR); + joinpath(outpath, buf, path); + return FALSE; + } else + return (ret == 1); +} + + +/* * Find out what post-processing to perform. * This is not used when saving to mailboxes (we don't postprocess mailboxes) * Also not used when using the auto-save feature because a default value is @@ -625,7 +655,7 @@ feed_articles( } /* We don't postprocess mailboxen */ - if ((is_mailbox = expand_save_filename(outpath, savefile)) == TRUE) + if ((is_mailbox = expand_feed_filename(outpath, savefile)) == TRUE) pproc_func = POSTPROCESS_NO; else { if (function != FEED_AUTOSAVE && (pproc_func = get_post_proc_type()) == GLOBAL_ABORT) diff -Nurp tin-1.9.1/src/filter.c tin-1.9.2/src/filter.c --- tin-1.9.1/src/filter.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/filter.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : filter.c * Author : I. Lea * Created : 1992-12-28 - * Updated : 2005-07-06 + * Updated : 2006-06-20 * Notes : Filter articles. Kill & auto selection are supported. * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -1140,14 +1140,17 @@ filter_menu( } if (*rule.text) { - list = my_malloc(sizeof(char *) * 5); + list = my_malloc(sizeof(char *) * 8); list[0] = (char *) _(txt_subj_line_only_case); list[1] = (char *) _(txt_subj_line_only); list[2] = (char *) _(txt_from_line_only_case); list[3] = (char *) _(txt_from_line_only); - list[4] = (char *) _(txt_msgid_line_only); + list[4] = (char *) _(txt_msgid_refs_line); + list[5] = (char *) _(txt_msgid_line_last); + list[6] = (char *) _(txt_msgid_line_only); + list[7] = (char *) _(txt_refs_line_only); - i = get_choice(INDEX_TOP + 3, _(txt_help_filter_text_type), _(txt_filter_text_type), list, 5); + i = get_choice(INDEX_TOP + 3, _(txt_help_filter_text_type), _(txt_filter_text_type), list, 8); free(list); if (i == -1) { @@ -1167,7 +1170,7 @@ filter_menu( case FILTER_MSGID: case FILTER_MSGID_LAST: case FILTER_MSGID_ONLY: - /* rule.icase is FALSE already, no assignment necessary */ + case FILTER_REFS_ONLY: break; default: /* should not happen */ diff -Nurp tin-1.9.1/src/global.c tin-1.9.2/src/global.c --- tin-1.9.1/src/global.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/global.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-10-19 * Notes : Generic nagivation and key handling routines * - * Copyright (c) 1999-2006 Jason Faultless + * Copyright (c) 1999-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/group.c tin-1.9.2/src/group.c --- tin-1.9.1/src/group.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/group.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : group.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2005-07-02 + * Updated : 2006-10-06 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -455,7 +455,8 @@ group_page( old_artnum = arts[(int) base[grpmenu.curr]].artnum; } n = tinrc.sort_article_type; - if ((change_config_file(group) == NO_FILTERING) && n != tinrc.sort_article_type) + change_config_file(group); + if (n != tinrc.sort_article_type) make_threads(group, TRUE); grpmenu.curr = find_new_pos(old_top, old_artnum, grpmenu.curr); show_group_page(); @@ -1567,14 +1568,19 @@ enter_thread( case GRP_NEXTUNREAD: /* 'C'atchup */ if ((n = next_unread((int) base[grpmenu.curr])) >= 0) { + if (page) + page->art = n; if ((n = which_thread(n)) >= 0) { grpmenu.curr = n; depth = 0; break; /* Drop into next thread with unread */ } } - /* No more unread threads in this group */ - /* FALLTHROUGH */ + /* No more unread threads in this group, enter next group */ + grpmenu.curr = 0; + return GRP_NEXTUNREAD; + /* NOTREACHED */ + break; case GRP_KILLED: grpmenu.curr = 0; diff -Nurp tin-1.9.1/src/hashstr.c tin-1.9.2/src/hashstr.c --- tin-1.9.1/src/hashstr.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/hashstr.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-09-19 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * diff -Nurp tin-1.9.1/src/header.c tin-1.9.2/src/header.c --- tin-1.9.1/src/header.c 2006-02-15 22:08:20.000000000 +0100 +++ tin-1.9.2/src/header.c 2006-12-22 02:41:54.000000000 +0100 @@ -5,7 +5,7 @@ * Created : 1997-03-10 * Updated : 2006-02-15 * - * Copyright (c) 1997-2006 Urs Janssen + * Copyright (c) 1997-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/help.c tin-1.9.2/src/help.c --- tin-1.9.1/src/help.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/help.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : help.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2005-07-02 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -326,7 +326,6 @@ static t_help_page thread_help_page[] = static t_help_page page_help_page[] = { { txt_help_title_navi, NOT_ASSIGNED }, { txt_help_global_page_down, GLOBAL_PAGE_DOWN }, - { txt_help_global_page_down, PAGE_PAGE_DOWN3 }, { txt_help_global_page_up, GLOBAL_PAGE_UP }, { txt_help_global_line_down, GLOBAL_LINE_DOWN }, { txt_help_global_line_up, GLOBAL_LINE_UP }, @@ -469,7 +468,7 @@ make_help_page( snprintf(buf, LEN, "%s", _(helppage->helptext)); buf[LEN - 1] = '\0'; expand_ctrl_chars(&buf, &length, 8); - fprintf(fp, "%s", buf); + fprintf(fp, "%s\n", buf); } else { for (i = 0; i < keys.used; i++) { if (keys.list[i].function == helppage->func && keys.list[i].key) { @@ -478,7 +477,7 @@ make_help_page( buf[LEN - 1] = '\0'; expand_ctrl_chars(&buf, &length, 8); if (strcmp(last, buf)) { - fprintf(fp, "%s", buf); + fprintf(fp, "%s\n", buf); strncpy(last, buf, LEN); } } diff -Nurp tin-1.9.1/src/inews.c tin-1.9.2/src/inews.c --- tin-1.9.1/src/inews.c 2006-02-15 22:05:56.000000000 +0100 +++ tin-1.9.2/src/inews.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : NNTP built in version of inews * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/init.c tin-1.9.2/src/init.c --- tin-1.9.1/src/init.c 2006-03-11 11:29:08.000000000 +0100 +++ tin-1.9.2/src/init.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : init.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-03-11 + * Updated : 2006-06-28 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -261,6 +261,8 @@ struct t_config tinrc = { "", /* sigfile */ "", /* strip_re_regex */ "", /* strip_was_regex */ + "", /* verbatim_begin_regex */ + "", /* verbatim_end_regex */ "", /* savedir */ "", /* spamtrap_warning_addresses */ DEFAULT_URL_HANDLER, /* url_handler */ @@ -272,6 +274,7 @@ struct t_config tinrc = { 'a', /* default_save_mode */ 0, /* getart_limit */ 2, /* recent_time */ + GOTO_NEXT_UNREAD_TAB, /* goto_next_unread */ 32, /* groupname_max_length */ UUE_NO, /* hide_uue */ KILL_UNREAD, /* kill_level */ @@ -359,7 +362,6 @@ struct t_config tinrc = { FALSE, /* mail_8bit_header */ FALSE, /* mark_ignore_tags */ TRUE, /* mark_saved_read */ - TRUE, /* pgdn_goto_next */ TRUE, /* pos_first_unread */ FALSE, /* post_8bit_header */ TRUE, /* post_process_view */ @@ -376,7 +378,6 @@ struct t_config tinrc = { TRUE, /* show_signatures */ TRUE, /* sigdashes */ TRUE, /* signature_repost */ - FALSE, /* space_goto_next_unread */ #ifdef M_UNIX TRUE, /* start_editor_offset */ #else @@ -384,7 +385,6 @@ struct t_config tinrc = { #endif /* M_UNIX */ TRUE, /* strip_blanks */ FALSE, /* strip_newsrc */ - TRUE, /* tab_goto_next_unread */ FALSE, /* tex2iso_conv */ TRUE, /* thread_catchup_on_exit */ TRUE, /* unlink_article */ @@ -595,15 +595,7 @@ init_selfinfo( created_rcdir = FALSE; dangerous_signal_exit = FALSE; disable_gnksa_domain_check = FALSE; -#ifdef MAC_OS_X /* usualy they don't have a valid FQDN */ - /* - * TODO: check if gnksa_check_domain(get_fqdn()) returns ok - * and if it does, don't disable Sender - */ - disable_sender = TRUE; -#else - disable_sender = FALSE; -#endif /* MAC_OS_X */ + disable_sender = FALSE; /* we set force_no_post=TRUE later on if we don't have a valid FQDN */ filtered_articles = FALSE; iso2asc_supported = atoi(get_val("ISO2ASC", DEFAULT_ISO2ASC)); if (iso2asc_supported > NUM_ISO_TABLES || iso2asc_supported < 0) /* TODO: issue a warning here? */ @@ -976,12 +968,16 @@ postinit_regexp( STRCPY(tinrc.underscores_regex, DEFAULT_UNDERSCORES_REGEX); compile_regex(tinrc.underscores_regex, &underscores_regex, PCRE_CASELESS); + if (!strlen(tinrc.verbatim_begin_regex)) + STRCPY(tinrc.verbatim_begin_regex, DEFAULT_VERBATIM_BEGIN_REGEX); + compile_regex(tinrc.verbatim_begin_regex, &verbatim_begin_regex, PCRE_ANCHORED); + if (!strlen(tinrc.verbatim_end_regex)) + STRCPY(tinrc.verbatim_end_regex, DEFAULT_VERBATIM_END_REGEX); + compile_regex(tinrc.verbatim_end_regex, &verbatim_end_regex, PCRE_ANCHORED); + compile_regex(UUBEGIN_REGEX, &uubegin_regex, PCRE_ANCHORED); compile_regex(UUBODY_REGEX, &uubody_regex, PCRE_ANCHORED); - compile_regex(VERBATIM_BEGIN_REGEX, &verbatim_begin_regex, PCRE_ANCHORED); - compile_regex(VERBATIM_END_REGEX, &verbatim_end_regex, PCRE_ANCHORED); - compile_regex(URL_REGEX, &url_regex, PCRE_CASELESS); compile_regex(MAIL_REGEX, &mail_regex, PCRE_CASELESS); compile_regex(NEWS_REGEX, &news_regex, PCRE_CASELESS); diff -Nurp tin-1.9.1/src/joinpath.c tin-1.9.2/src/joinpath.c --- tin-1.9.1/src/joinpath.c 2006-02-15 22:04:22.000000000 +0100 +++ tin-1.9.2/src/joinpath.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-09-19 * Notes : * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/keymap.c tin-1.9.2/src/keymap.c --- tin-1.9.1/src/keymap.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/keymap.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : keymap.c * Author : D. Nimmich, J. Faultless * Created : 2000-05-25 - * Updated : 2005-10-19 + * Updated : 2006-06-28 * Notes : This file contains key mapping routines and variables. * - * Copyright (c) 2000-2006 Dirk Nimmich + * Copyright (c) 2000-2007 Dirk Nimmich * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -946,16 +946,6 @@ process_mapping( return TRUE; } - if (strcmp(keyname, "PageDown3") == 0) { - process_keys(GLOBAL_PAGE_DOWN, keys, &group_keys); - process_keys(GLOBAL_PAGE_DOWN, keys, &info_keys); - process_keys(GLOBAL_PAGE_DOWN, keys, &option_menu_keys); - process_keys(GLOBAL_PAGE_DOWN, keys, &select_keys); - process_keys(GLOBAL_PAGE_DOWN, keys, &thread_keys); - process_keys(PAGE_PAGE_DOWN3, keys, &page_keys); - - return TRUE; - } if (strcmp(keyname, "PageEditArticle") == 0) { process_keys(PAGE_EDIT_ARTICLE, keys, &page_keys); @@ -1725,7 +1715,7 @@ upgrade_keymap_file( char *mark_thread_unread[3] = { NULL, NULL, NULL }; char *menu_filter_kill[3] = { NULL, NULL, NULL }; char *menu_filter_select[3] = { NULL, NULL, NULL }; - char *pagedown[2] = { NULL, NULL }; + char *pagedown[3] = { NULL, NULL, NULL }; char *pagenextthd[2] = { NULL, NULL }; char *pageup[3] = { NULL, NULL, NULL }; char *postponed[2] = { NULL, NULL }; @@ -1787,15 +1777,18 @@ upgrade_keymap_file( FreeAndNull(groupreadbasenote[0]); FreeAndNull(groupreadbasenote[1]); } - if (pagedown[0] || pagedown[1]) { + if (pagedown[0] || pagedown[1] || pagedown[2]) { fprintf(newfp, "PageDown\t\t"); if (pagedown[0]) fprintf(newfp, "\t%s", pagedown[0]); if (pagedown[1]) fprintf(newfp, "\t%s", pagedown[1]); + if (pagedown[2]) + fprintf(newfp, "\t%s", pagedown[2]); fprintf(newfp, "\n"); FreeAndNull(pagedown[0]); FreeAndNull(pagedown[1]); + FreeAndNull(pagedown[2]); } if (pagenextthd[0] || pagenextthd[1]) { fprintf(newfp, "PageNextThd\t\t"); @@ -2014,6 +2007,8 @@ upgrade_keymap_file( pagedown[0] = my_strdup(keydef); else if (strcmp(keyname, "PageDown2") == 0) pagedown[1] = my_strdup(keydef); + else if (strcmp(keyname, "PageDown3") == 0) + pagedown[2] = my_strdup(keydef); else if (strcmp(keyname, "PageEditFilter") == 0) edit_filter[1] = my_strdup(keydef); else if (strcmp(keyname, "PageNextThd") == 0) @@ -2324,7 +2319,6 @@ setup_default_keys( { /* select level */ add_global_keys(&select_keys); - add_default_key(&select_keys, " ", GLOBAL_PAGE_DOWN); add_default_key(&select_keys, "\n\r", SELECT_ENTER_GROUP); add_default_key(&select_keys, "", SELECT_RESET_NEWSRC); add_default_key(&select_keys, "c", CATCHUP); @@ -2351,7 +2345,6 @@ setup_default_keys( /* group level */ add_global_keys(&group_keys); - add_default_key(&group_keys, " ", GLOBAL_PAGE_DOWN); add_default_key(&group_keys, "", GLOBAL_MENU_FILTER_SELECT); add_default_key(&group_keys, "\n\r", GROUP_READ_BASENOTE); add_default_key(&group_keys, " ", GLOBAL_MENU_FILTER_KILL); @@ -2403,7 +2396,6 @@ setup_default_keys( /* thread keys */ add_global_keys(&thread_keys); - add_default_key(&thread_keys, " ", GLOBAL_PAGE_DOWN); add_default_key(&thread_keys, "", GLOBAL_MENU_FILTER_SELECT); add_default_key(&thread_keys, " ", GLOBAL_MENU_FILTER_KILL); add_default_key(&thread_keys, "\n\r", THREAD_READ_ARTICLE); @@ -2438,7 +2430,6 @@ setup_default_keys( /* page level */ add_global_keys(&page_keys); - add_default_key(&page_keys, "", GLOBAL_PAGE_DOWN); add_default_key(&page_keys, "", GLOBAL_MENU_FILTER_SELECT); add_default_key(&page_keys, "", PAGE_REPLY_QUOTE_HEADERS); #ifdef HAVE_PGP_GPG @@ -2485,7 +2476,6 @@ setup_default_keys( add_default_key(&page_keys, "V", PAGE_VIEW_ATTACHMENTS); add_default_key(&page_keys, "Z", MARK_THREAD_UNREAD); add_default_key(&page_keys, "\t", PAGE_NEXT_UNREAD); - add_default_key(&page_keys, " ", PAGE_PAGE_DOWN3); add_default_key(&page_keys, "-", GLOBAL_LAST_VIEWED); add_default_key(&page_keys, "|", GLOBAL_PIPE); add_default_key(&page_keys, "<", PAGE_TOP_THREAD); @@ -2688,6 +2678,7 @@ add_global_keys( add_default_key(keys, "8", DIGIT_8); add_default_key(keys, "9", DIGIT_9); add_default_key(keys, "b", GLOBAL_PAGE_UP); + add_default_key(keys, " ", GLOBAL_PAGE_DOWN); add_default_key(keys, " ", GLOBAL_REDRAW_SCREEN); add_default_key(keys, "j", GLOBAL_LINE_DOWN); add_default_key(keys, "k", GLOBAL_LINE_UP); diff -Nurp tin-1.9.1/src/lang.c tin-1.9.2/src/lang.c --- tin-1.9.1/src/lang.c 2006-02-15 22:03:44.000000000 +0100 +++ tin-1.9.2/src/lang.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : lang.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-10-16 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -475,7 +475,6 @@ constext txt_last[] = N_("Last"); constext txt_last_resp[] = N_("-- Last response --"); constext txt_lines[] = N_("Lines %s "); -constext txt_msgid_line_only[] = N_("Message-ID: line "); constext txt_mail[] = N_("Mail"); constext txt_mailbox[] = N_("mailbox "); constext txt_mail_art_to[] = N_("Mail article(s) to [%.*s]> "); @@ -508,6 +507,9 @@ constext txt_mini_thread_1[] = N_("=s constext txt_mini_thread_2[] = N_("%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread"); constext txt_more[] = N_("--More--"); constext txt_moving[] = N_("Moving %s..."); +constext txt_msgid_line_last[] = N_("Message-ID: & last Reference "); +constext txt_msgid_line_only[] = N_("Message-ID: line "); +constext txt_msgid_refs_line[] = N_("Message-ID: & References: line"); constext txt_name[] = N_(", name: "); constext txt_newsgroup[] = N_("Goto newsgroup [%s]> "); @@ -616,6 +618,7 @@ constext txt_reading_news_active_file[] constext txt_reading_news_newsrc_file[] = N_("Reading groups from newsrc file... "); constext txt_reading_newsgroups_file[] = N_("Reading newsgroups file... "); constext txt_reading_newsrc[] = N_("Reading newsrc file..."); +constext txt_refs_line_only[] = N_("References: line "); #ifdef HAVE_GETTIMEOFDAY constext txt_remaining[] = N_("(%d:%02d remaining)"); #endif /* HAVE_GETTIMEOFDAY */ @@ -774,6 +777,7 @@ constext txt_usage_verbose[] = N_(" -v constext txt_usage_version[] = N_(" -V print version & date information"); constext txt_useful_without_batch_mode[] = N_("%s only useful without batch mode operations\n"); constext txt_useful_with_batch_mode[] = N_("%s only useful for batch mode operations\n"); +constext txt_useless_combination[] = N_("Useless combination %s and %s. Ignoring %s.\n"); constext txt_value_out_of_range[] = N_("\n%s%d out of range (0 - %d). Reset to 0"); constext txt_view_attachment[] = N_("View '%s' (%s/%s)?"); @@ -930,7 +934,7 @@ Warning: Posting is in %s and contains c #endif /* HAVE_PGP_GPG */ #ifdef M_UNIX - constext txt_copyright_notice[] = "%s (c) Copyright 1991-2006 Iain Lea."; + constext txt_copyright_notice[] = "%s (c) Copyright 1991-2007 Iain Lea."; #endif /* M_UNIX */ #ifdef NNTP_ABLE @@ -1197,6 +1201,14 @@ constext *txt_confirm_choices[] = { N_("commands & quit & select") }; +/* diffent options for goto_next_unread */ +constext *txt_goto_next_unread_options[] = { + N_("none"), + N_("PageDown"), + N_("PageNextUnread"), + N_("PageDown or PageNextUnread"), +}; + /* * MIME-Content-Transfer-Encodings. */ @@ -1240,7 +1252,9 @@ constext *txt_sort_a_type[] = { constext *txt_sort_t_type[] = { N_("Nothing"), N_("Score (descending)"), - N_("Score (ascending)") + N_("Score (ascending)"), + N_("Last posting date (descending)"), + N_("Last posting date (ascending)") }; /* Ways of handling bogus groups */ @@ -1467,7 +1481,9 @@ struct opttxt txt_sort_threads_type = { # Possible values are (the default is marked with *):\n\ # 0 = nothing\n\ # * 1 = Score descending\n\ -# 2 = Score ascending\n") +# 2 = Score ascending\n\ +# 3 = Last posting date descending\n\ +# 4 = Last posting date ascending\n") }; struct opttxt txt_pos_first_unread = { @@ -1498,24 +1514,15 @@ struct opttxt txt_kill_level = { # 2 = kill all articles and never show them\n") }; -struct opttxt txt_tab_goto_next_unread = { +struct opttxt txt_goto_next_unread = { N_(" toggles, sets, cancels."), - N_("Tab goes to next unread article"), - N_("# If ON the TAB command will go to next unread article at article viewer level\n") -}; - -struct opttxt txt_space_goto_next_unread = { - N_("Scrolling with past the end of an art. jumps to the next unread one."), - N_("Space goes to next unread article"), - N_("# If ON the SPACE command will go to next unread article at article viewer\n\ -# level when the end of the article is reached (rn-style pager)\n") -}; - -struct opttxt txt_pgdn_goto_next = { - N_("Scrolling with / past the end of an art. jumps to the unread one."), - N_("PgDn goes to next unread article"), - N_("# If ON the PGDN or DOWN command will go to next unread article when\n\ -# pressed at end of message\n") + N_("Go to the next unread article with"), + N_("# Go to the unread article with folling key(s)\n\ +# Possible values are (the default is marked with *):\n\ +# 0 = nothing\n\ +# 1 = PAGE DOWN\n\ +# * 2 = TAB\n\ +# 3 = PAGE DOWN or TAB\n") }; struct opttxt txt_auto_list_thread = { @@ -1741,6 +1748,20 @@ struct opttxt txt_strip_was_regex = { # which will be removed when replying or posting followup.\n") }; +struct opttxt txt_verbatim_begin_regex = { + N_("A regex used to find the begin of a verbatim block."), + N_("Regex for begin of a verbatim block"), + N_("# A regular expression that tin will use to find the begin of\n\ +# a verbatim block.\n") +}; + +struct opttxt txt_verbatim_end_regex = { + N_("A regex used to find the end of a verbatim block."), + N_("Regex for end of a verbatim block"), + N_("# A regular expression that tin will use to find the end of\n\ +# a verbatim block.\n") +}; + struct opttxt txt_metamail_prog = { N_("Enter name and options for external MIME viewer, --internal for built-in viewer"), N_("MIME binary content viewer"), @@ -1796,7 +1817,7 @@ struct opttxt txt_url_handler = { struct opttxt txt_use_mouse = { N_(" toggles, sets, cancels."), N_("Use mouse in xterm"), - N_("# If ON enable mouse key support on xterm terminals\n") + N_("# If ON enable mouse button support on xterm terminals\n") }; #ifdef HAVE_KEYPAD diff -Nurp tin-1.9.1/src/list.c tin-1.9.2/src/list.c --- tin-1.9.1/src/list.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/list.c 2006-12-22 02:41:54.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-20 * Notes : Low level functions handling the active[] list and its group_hash index * - * Copyright (c) 1993-2006 Iain Lea + * Copyright (c) 1993-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/lock.c tin-1.9.2/src/lock.c --- tin-1.9.1/src/lock.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/lock.c 2006-12-22 02:41:54.000000000 +0100 @@ -3,10 +3,10 @@ * Module : lock.c * Author : Urs Janssen * Created : 1998-07-27 - * Updated : 2003-05-16 + * Updated : 2006-05-11 * Notes : * - * Copyright (c) 1998-2006 Urs Janssen + * Copyright (c) 1998-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -234,7 +234,9 @@ t_bool dot_lock( if (stat(lockfile, &statbuf)) { /* lockfile doesn't exist */ if (!link(tempfile, lockfile)) { /* link succsessfull */ if (!stat(tempfile, &statbuf)) { /* tempfile exist */ +/* # ifndef __CYGWIN__ */ /* TODO: test if needed/usefull */ if (statbuf.st_nlink == 2) /* link count ok */ +/* # endif *//* !__CYGWIN__ */ rval = TRUE; } } diff -Nurp tin-1.9.1/src/mail.c tin-1.9.2/src/mail.c --- tin-1.9.1/src/mail.c 2006-02-15 22:22:42.000000000 +0100 +++ tin-1.9.2/src/mail.c 2006-12-26 19:53:50.523778596 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : Mail handling routines for creating pseudo newsgroups * - * Copyright (c) 1992-2006 Iain Lea + * Copyright (c) 1992-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -397,10 +397,8 @@ read_groups_descriptions( r_len = strlen(r); /* * Protect against invalid character sequences. - * - * TODO: change US-ASCII to UTF-8 when NNTP draft becomes RFC */ - process_charsets(&r, &r_len, "US-ASCII", tinrc.mm_local_charset, FALSE); + process_charsets(&r, &r_len, "UTF-8", tinrc.mm_local_charset, FALSE); group->description = convert_to_printable(r); } diff -Nurp tin-1.9.1/src/main.c tin-1.9.2/src/main.c --- tin-1.9.1/src/main.c 2006-02-15 22:03:23.000000000 +0100 +++ tin-1.9.2/src/main.c 2006-12-22 02:41:55.000000000 +0100 @@ -3,10 +3,10 @@ * Module : main.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-10-16 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -658,7 +658,7 @@ read_cmd_line_options( } /* - * Sort out conflicts of options.... + * Sort out option conflicts */ if (!batch_mode) { if (verbose) { @@ -675,6 +675,33 @@ read_cmd_line_options( read_saved_news = FALSE; } } + if (post_postponed_and_exit && force_no_post) { + wait_message(2, _(txt_useless_combination), "-o", "-x", "-x"); + force_no_post = FALSE; + } + if (post_article_and_exit && force_no_post) { + wait_message(2, _(txt_useless_combination), "-w", "-x", "-x"); + force_no_post = FALSE; + } + if (catchup && start_any_unread) { + wait_message(2, _(txt_useless_combination), "-c", "-z", "-c"); + catchup = FALSE; + } + if (catchup && no_write) { + wait_message(2, _(txt_useless_combination), "-c", "-X", "-c"); + catchup = FALSE; + } + if (catchup && check_any_unread) { + wait_message(2, _(txt_useless_combination), "-c", "-Z", "-c"); + catchup = FALSE; + } + if (mail_news || save_news || update_index || check_any_unread || catchup) + batch_mode = TRUE; + else + batch_mode = FALSE; + if (batch_mode && (post_article_and_exit || post_postponed_and_exit)) + batch_mode = FALSE; + #ifdef NNTP_ABLE /* * If we're reading from an NNTP server and we've been asked not to look diff -Nurp tin-1.9.1/src/makecfg.c tin-1.9.2/src/makecfg.c --- tin-1.9.1/src/makecfg.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/makecfg.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-06-21 * Notes : #defines and structs for options_menu.c * - * Copyright (c) 1997-2006 Thomas E. Dickey + * Copyright (c) 1997-2007 Thomas E. Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/memory.c tin-1.9.2/src/memory.c --- tin-1.9.1/src/memory.c 2006-03-11 11:31:57.000000000 +0100 +++ tin-1.9.2/src/memory.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-03-11 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/mimetypes.c tin-1.9.2/src/mimetypes.c --- tin-1.9.1/src/mimetypes.c 2006-02-15 22:02:51.000000000 +0100 +++ tin-1.9.2/src/mimetypes.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : mime.types handling * - * Copyright (c) 2000-2006 Jason Faultless + * Copyright (c) 2000-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/misc.c tin-1.9.2/src/misc.c --- tin-1.9.1/src/misc.c 2006-04-08 16:31:40.000000000 +0200 +++ tin-1.9.2/src/misc.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-04-06 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/my_tmpfile.c tin-1.9.2/src/my_tmpfile.c --- tin-1.9.1/src/my_tmpfile.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/my_tmpfile.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2004-06-30 * Notes : * - * Copyright (c) 2001-2006 Urs Janssen + * Copyright (c) 2001-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/newsrc.c tin-1.9.2/src/newsrc.c --- tin-1.9.1/src/newsrc.c 2006-02-15 22:23:30.000000000 +0100 +++ tin-1.9.2/src/newsrc.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : ArtCount = (ArtMax - ArtMin) + 1 [could have holes] * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/nntplib.c tin-1.9.2/src/nntplib.c --- tin-1.9.1/src/nntplib.c 2006-03-06 18:42:45.000000000 +0100 +++ tin-1.9.2/src/nntplib.c 2007-01-09 13:48:46.963474309 +0100 @@ -3,7 +3,7 @@ * Module : nntplib.c * Author : S. Barber & I. Lea * Created : 1991-01-12 - * Updated : 2006-03-05 + * Updated : 2007-01-09 * Notes : NNTP client routines taken from clientlib.c 1.5.11 (1991-02-10) * Copyright : (c) Copyright 1991-99 by Stan Barber & Iain Lea * Permission is hereby granted to copy, reproduce, redistribute @@ -433,12 +433,12 @@ get_tcp_socket( # endif /* HAVE_GETSERVBYNAME */ /* If not a raw ip address, try nameserver */ - if (!isdigit((unsigned char) *machine) || + if (!isdigit((unsigned char) *machine) # ifdef HAVE_INET_ATON - !inet_aton(machine, &defaddr) + || !inet_aton(machine, &defaddr) # else # ifdef HAVE_INET_ADDR - (long) (defaddr.s_addr = (long) inet_addr(machine)) == -1 + || (long) (defaddr.s_addr = (long) inet_addr(machine)) == -1 # endif /* HAVE_INET_ADDR */ # endif /* HAVE_INET_ATON */ ) @@ -956,126 +956,139 @@ check_extensions( { char *ptr; int ret = 0; -# if 0 /* "CAPABILITIES" will replace "LIST EXTENSIONS" */ - FILE *fp; +# if 1 /* "CAPABILITIES" replaces "LIST EXTENSIONS" */ + char buf[NNTP_STRLEN]; char *d; + int i; - if ((fp = nntp_command("CAPABILITIES", INF_CAPABILITIES, NULL, 0)) != NULL) { - nntp_caps.type = CAPABILITIES; - while ((ptr = tin_fgets(fp, FALSE)) != NULL) { + buf[0] = '\0'; + i = new_nntp_command("CAPABILITIES", INF_CAPABILITIES, buf, sizeof(buf)); + switch (i) { + case INF_CAPABILITIES: + nntp_caps.type = CAPABILITIES; + while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) { # ifdef DEBUG - debug_nntp("<<<", ptr); + debug_nntp("<<<", ptr); # endif /* DEBUG */ - /* look for version number(s) */ - if (!nntp_caps.version && nntp_caps.type == CAPABILITIES) { - if (!strcasecmp(ptr, "VERSION")) { - d = ptr + 7; - d = strpbrk(d, " \t"); - while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { - d++; - nntp_caps.version = MAX(nntp_caps.version, (unsigned int) atoi(d)); + /* look for version number(s) */ + if (!nntp_caps.version && nntp_caps.type == CAPABILITIES) { + if (!strcasecmp(ptr, "VERSION")) { + d = ptr + 7; d = strpbrk(d, " \t"); + while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { + d++; + nntp_caps.version = MAX(nntp_caps.version, (unsigned int) atoi(d)); + d = strpbrk(d, " \t"); + } } } - } - /* we currently only support CAPABILITIES VERSION 2 */ - if (nntp_caps.version == 2) { - /* - * check for LIST variants - this code is untested - */ - if (!strcasecmp(ptr, "LIST")) { - d = ptr + 4; - d = strpbrk(d, " \t"); - while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { - d++; - if (!strcasecmp(d, "ACTIVE.TIMES")) - nntp_caps.list_active_times = TRUE; - else if (!strcasecmp(d, "ACTIVE")) - nntp_caps.list_active_times = TRUE; - else if (!strcasecmp(d, "DISTRIB.PATS")) - nntp_caps.list_distrib_pats = TRUE; - else if (!strcasecmp(d, "DISTRIBUTIONS")) /* LIST DISTRIBUTIONS, "private" extension, RFC 2980 */ - nntp_caps.list_distributions = TRUE; - else if (!strcasecmp(d, "HEADERS")) - nntp_caps.list_headers = TRUE; /* HDR requires LIST HEADERS, but not vice versa */ - else if (!strcasecmp(d, "NEWSGROUPS")) - nntp_caps.list_newsgroups = TRUE; - else if (!strcasecmp(d, "OVERVIEW.FMT")) /* OVER requires OVERVIEW.FMT, but not vice versa */ - nntp_caps.list_overview_fmt = TRUE; - else if (!strcasecmp(d, "MOTD")) /* "private" extension */ - nntp_caps.list_motd = TRUE; - else if (!strcasecmp(d, "SUBSCRIPTIONS")) /* "private" extension, RFC 2980 */ - nntp_caps.list_subscriptions = TRUE; - else if (!strcasecmp(d, "MODERATORS")) /* "private" extension */ - nntp_caps.list_moderators = TRUE; + /* we currently only support CAPABILITIES VERSION 2 */ + if (nntp_caps.version == 2) { + /* + * check for LIST variants - this code is untested + */ + if (!strcasecmp(ptr, "LIST")) { + d = ptr + 4; d = strpbrk(d, " \t"); - } - } else if (!strcasecmp(ptr, "IMPLEMENTATION")) - nntp_caps.implementation = my_strdup(ptr + 14); - else if (!strcasecmp(ptr, "MODE-READER")) { - if (!nntp_caps.reader) - nntp_caps.mode_reader = TRUE; - } else if (!strcasecmp(ptr, "READER")) { - nntp_caps.reader = TRUE; - nntp_caps.mode_reader = FALSE; - } else if (!strcasecmp(d, "POST")) - nntp_caps.post = TRUE; - else if (!strcasecmp(ptr, "NEWNEWS")) - nntp_caps.newnews = TRUE; - else if (!strcasecmp(ptr, "XPAT")) /* extension, RFC 2980 */ - nntp_caps.xpat = TRUE; - else if (!strcasecmp(ptr, "STARTTLS")) - nntp_caps.starttls = TRUE; - /* - * NOTE: if we saw OVER, LIST OVERVIEW.FMT _must_ be implemented - */ - else if (!strcasecmp(ptr, &xover_cmds[1])) { - nntp_caps.over = TRUE; - nntp_caps.list_overview_fmt = TRUE; - nntp_caps.over_cmd = &xover_cmds[1]; - d = ptr + strlen(&xover_cmds[1]); - d = strpbrk(d, " \t"); - while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { - d++; - if (!strcasecmp(d, "MSGID")) - nntp_caps.over_msgid = TRUE; + while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { + d++; + if (!strcasecmp(d, "ACTIVE.TIMES")) + nntp_caps.list_active_times = TRUE; + else if (!strcasecmp(d, "ACTIVE")) + nntp_caps.list_active_times = TRUE; + else if (!strcasecmp(d, "DISTRIB.PATS")) + nntp_caps.list_distrib_pats = TRUE; + else if (!strcasecmp(d, "DISTRIBUTIONS")) /* LIST DISTRIBUTIONS, "private" extension, RFC 2980 */ + nntp_caps.list_distributions = TRUE; + else if (!strcasecmp(d, "HEADERS")) + nntp_caps.list_headers = TRUE; /* HDR requires LIST HEADERS, but not vice versa */ + else if (!strcasecmp(d, "NEWSGROUPS")) + nntp_caps.list_newsgroups = TRUE; + else if (!strcasecmp(d, "OVERVIEW.FMT")) /* OVER requires OVERVIEW.FMT, but not vice versa */ + nntp_caps.list_overview_fmt = TRUE; + else if (!strcasecmp(d, "MOTD")) /* "private" extension */ + nntp_caps.list_motd = TRUE; + else if (!strcasecmp(d, "SUBSCRIPTIONS")) /* "private" extension, RFC 2980 */ + nntp_caps.list_subscriptions = TRUE; + else if (!strcasecmp(d, "MODERATORS")) /* "private" extension */ + nntp_caps.list_moderators = TRUE; + d = strpbrk(d, " \t"); + } + } else if (!strcasecmp(ptr, "IMPLEMENTATION")) + nntp_caps.implementation = my_strdup(ptr + 14); + else if (!strcasecmp(ptr, "MODE-READER")) { + if (!nntp_caps.reader) + nntp_caps.mode_reader = TRUE; + } else if (!strcasecmp(ptr, "READER")) { + nntp_caps.reader = TRUE; + nntp_caps.mode_reader = FALSE; + } else if (!strcasecmp(d, "POST")) + nntp_caps.post = TRUE; + else if (!strcasecmp(ptr, "NEWNEWS")) + nntp_caps.newnews = TRUE; + else if (!strcasecmp(ptr, "XPAT")) /* extension, RFC 2980 */ + nntp_caps.xpat = TRUE; + else if (!strcasecmp(ptr, "STARTTLS")) + nntp_caps.starttls = TRUE; + /* + * NOTE: if we saw OVER, LIST OVERVIEW.FMT _must_ be implemented + */ + else if (!strcasecmp(ptr, &xover_cmds[1])) { + nntp_caps.over = TRUE; + nntp_caps.list_overview_fmt = TRUE; + nntp_caps.over_cmd = &xover_cmds[1]; + d = ptr + strlen(&xover_cmds[1]); d = strpbrk(d, " \t"); - } - } else if (!strcasecmp(ptr, "AUTHINFO")) { - d = ptr + 8; - d = strpbrk(d, " \t"); - while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { - d++; - if (!strcasecmp(d, "USER")) - nntp_caps.authinfo_user = TRUE; - if (!strcasecmp(d, "SASL")) - nntp_caps.authinfo_sasl = TRUE; + while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { + d++; + if (!strcasecmp(d, "MSGID")) + nntp_caps.over_msgid = TRUE; + d = strpbrk(d, " \t"); + } + } else if (!strcasecmp(ptr, "AUTHINFO")) { + d = ptr + 8; d = strpbrk(d, " \t"); + while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) { + d++; + if (!strcasecmp(d, "USER")) + nntp_caps.authinfo_user = TRUE; + if (!strcasecmp(d, "SASL")) + nntp_caps.authinfo_sasl = TRUE; + d = strpbrk(d, " \t"); + } } - } # if 0 - /* - * NOTE: if we saw HDR, LIST HEADERS _must_ be implemented - */ - else if (!strcasecmp(ptr, &xhdr_cmds[1])) { + /* + * NOTE: if we saw HDR, LIST HEADERS _must_ be implemented + */ + else if (!strcasecmp(ptr, &xhdr_cmds[1])) { nntp_caps.hdr_cmd = &xhdr_cmds[1]; nntp_caps.hdr = TRUE; nntp_caps.list_headers = TRUE; - } - else if (!strcasecmp(ptr, "IHAVE")) + } + else if (!strcasecmp(ptr, "IHAVE")) nntp_caps.ihave = TRUE; # endif /* 0 */ - /* - * TODO: SASL, STREAMING - */ - } else - nntp_caps.type = NO; - } + /* + * TODO: SASL, STREAMING + */ + } else + nntp_caps.type = NO; + } + break; + + case ERR_GOODBYE: + ret = i; + error_message(buf); + break; + + default: + break; } # ifdef DEBUG debug_print_nntp_extensions(); # endif /* DEBUG */ - if (!*sec && !nntp_caps.reader) { + if ((ret != ERR_GOODBYE) && !*sec && !nntp_caps.reader) { if (nntp_caps.type == CAPABILITIES && !nntp_caps.mode_reader) return -1; /* no mode-switching and no reader mode, give up */ if ((ret = mode_reader(&*sec)) != 0) @@ -1085,8 +1098,10 @@ check_extensions( } # else - /* + * TODO: the following code can go away in tin 2.0 as it's + * obsolete by RFC 3977 + * * "LIST EXTENSIONS" is somewhat troublesome as there are a lot * of broken implementations out there and it is a multiline response */ @@ -1136,23 +1151,28 @@ check_extensions( /* * as the server did support LIST EXTENSIONS it's likely that it * also can do LIST MOTD (we don't bother to parse the LIST - * EXTENSIONS output for MOTD as it never was standartizised; + * EXTENSIONS output for MOTD as it never was standardized; * draft-ietf-nntpext-base-24.txt only described OVER, HDR and * LISTGROUP). */ nntp_caps.list_motd = TRUE; break; + case ERR_GOODBYE: + ret = i; + error_message(buf); + break; + default: break; } # ifdef DEBUG debug_print_nntp_extensions(); # endif /* DEBUG */ - if (!*sec) + if ((ret != ERR_GOODBYE) && !*sec) ret = mode_reader(&*sec); } -# endif /* 0 */ +# endif /* 1 */ return ret; } @@ -1553,8 +1573,11 @@ get_only_respcode( respcode = (int) strtol(ptr, &end, 10); DEBUG_IO((stderr, "get_only_respcode(%d)\n", respcode)); - /* TODO: reconnect on ERR_FAULT? */ - if ((respcode == ERR_FAULT || respcode == ERR_GOODBYE || respcode == OK_GOODBYE) && last_put[0] != '\0' && strcmp(last_put, "QUIT")) { + /* + * we also reconnect on ERR_FAULT if last_put was ARTICLE or LIST or POST + * as inn (2.2.3) sends ERR_FAULT on timeout + */ + if (((respcode == ERR_FAULT && !strncmp(last_put, "ARTICLE", 7)) || (respcode == ERR_FAULT && !strncmp(last_put, "POST", 4)) || (respcode == ERR_FAULT && !strcmp(last_put, "LIST")) || respcode == ERR_GOODBYE || respcode == OK_GOODBYE) && last_put[0] != '\0' && strcmp(last_put, "QUIT")) { /* * Maybe server timed out. * If so, retrying will force a reconnect. diff -Nurp tin-1.9.1/src/nrctbl.c tin-1.9.2/src/nrctbl.c --- tin-1.9.1/src/nrctbl.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/nrctbl.c 2006-12-22 02:41:55.000000000 +0100 @@ -9,7 +9,7 @@ * and the name of the newsrc file for a given * alias of the server. * - * Copyright (c) 1996-2006 Sven Paulus + * Copyright (c) 1996-2007 Sven Paulus * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/options_menu.c tin-1.9.2/src/options_menu.c --- tin-1.9.1/src/options_menu.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/options_menu.c 2006-12-22 02:41:55.000000000 +0100 @@ -3,10 +3,10 @@ * Module : options_menu.c * Author : Michael Bienia * Created : 2004-09-05 - * Updated : 2005-07-02 + * Updated : 2006-10-01 * Notes : Split from config.c * - * Copyright (c) 2004-2006 Michael Bienia + * Copyright (c) 2004-2007 Michael Bienia * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -160,6 +160,9 @@ option_is_visible( case OPT_COL_TEXT: case OPT_COL_TITLE: case OPT_COL_URLS: + case OPT_QUOTE_REGEX: + case OPT_QUOTE_REGEX2: + case OPT_QUOTE_REGEX3: return tinrc.use_color; case OPT_COL_MARKSTAR: @@ -174,6 +177,10 @@ option_is_visible( case OPT_MONO_MARKDASH: case OPT_MONO_MARKSLASH: case OPT_MONO_MARKSTROKE: + case OPT_SLASHES_REGEX: + case OPT_STARS_REGEX: + case OPT_STROKES_REGEX: + case OPT_UNDERSCORES_REGEX: return tinrc.word_highlight; default: @@ -689,17 +696,14 @@ option_right( /* * options menu so that the user can dynamically change parameters * - * TODO: - why do we use ret_code when we never modify it? what about calling - * code which checks the return value? - * - when we change something we need to update the related attributes + * TODO: - when we change something we need to update the related attributes * as well (see line 2009). */ -int +void change_config_file( struct t_group *group) { enum option_enum option, old_option; - int ret_code = NO_FILTERING; int mime_encoding = MIME_ENCODING_7BIT; t_bool change_option = FALSE; t_function func; @@ -718,7 +722,7 @@ change_config_file( /* FALLTHROUGH */ case CONFIG_NO_SAVE: clear_note_area(); - return ret_code; + return; case GLOBAL_LINE_UP: unhighlight_option(option); @@ -900,7 +904,6 @@ change_config_file( case OPT_KEEP_DEAD_ARTICLES: case OPT_MARK_IGNORE_TAGS: case OPT_MARK_SAVED_READ: - case OPT_PGDN_GOTO_NEXT: case OPT_POS_FIRST_UNREAD: case OPT_POST_PROCESS_VIEW: #ifndef DISABLE_PRINTING @@ -912,11 +915,9 @@ change_config_file( case OPT_SHOW_SIGNATURES: case OPT_SIGDASHES: case OPT_SIGNATURE_REPOST: - case OPT_SPACE_GOTO_NEXT_UNREAD: case OPT_START_EDITOR_OFFSET: case OPT_STRIP_BLANKS: case OPT_STRIP_NEWSRC: - case OPT_TAB_GOTO_NEXT_UNREAD: case OPT_TEX2ISO_CONV: case OPT_THREAD_CATCHUP_ON_EXIT: #if defined(HAVE_ICONV_OPEN_TRANSLIT) && defined(CHARSET_CONVERSION) @@ -1065,6 +1066,7 @@ change_config_file( case OPT_COL_MARKSTROKE: case OPT_COL_URLS: #endif /* HAVE_COLOR */ + case OPT_GOTO_NEXT_UNREAD: case OPT_HIDE_UUE: case OPT_INTERACTIVE_MAILER: case OPT_WORD_H_DISPLAY_MARKS: @@ -1385,6 +1387,24 @@ change_config_file( compile_regex(tinrc.strip_was_regex, &strip_was_regex, 0); break; + case OPT_VERBATIM_BEGIN_REGEX: + prompt_option_string(option); + FreeIfNeeded(verbatim_begin_regex.re); + FreeIfNeeded(verbatim_begin_regex.extra); + if (!strlen(tinrc.verbatim_begin_regex)) + STRCPY(tinrc.verbatim_begin_regex, DEFAULT_VERBATIM_BEGIN_REGEX); + compile_regex(tinrc.verbatim_begin_regex, &verbatim_begin_regex, PCRE_ANCHORED); + break; + + case OPT_VERBATIM_END_REGEX: + prompt_option_string(option); + FreeIfNeeded(verbatim_end_regex.re); + FreeIfNeeded(verbatim_end_regex.extra); + if (!strlen(tinrc.verbatim_end_regex)) + STRCPY(tinrc.verbatim_end_regex, DEFAULT_VERBATIM_END_REGEX); + compile_regex(tinrc.verbatim_end_regex, &verbatim_end_regex, PCRE_ANCHORED); + break; + case OPT_DATE_FORMAT: prompt_option_string(option); if (!strlen(tinrc.date_format)) { @@ -1494,5 +1514,5 @@ change_config_file( } /* if (change_option) */ } /* forever */ /* NOTREACHED */ - return ret_code; + return; } diff -Nurp tin-1.9.1/src/page.c tin-1.9.2/src/page.c --- tin-1.9.1/src/page.c 2006-03-11 13:14:41.000000000 +0100 +++ tin-1.9.2/src/page.c 2006-12-22 02:41:55.000000000 +0100 @@ -3,10 +3,10 @@ * Module : page.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2005-10-19 + * Updated : 2006-10-01 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -300,7 +300,6 @@ show_page( char buf[LEN]; char key[MAXKEYLEN]; int i, n = 0; - int filter_state = NO_FILTERING; int old_sort_art_type = tinrc.sort_article_type; int art_type = GROUP_TYPE_NEWS; t_bool mouse_click_on = TRUE; @@ -390,8 +389,7 @@ show_page( case GLOBAL_PAGE_DOWN: /* page down or next response */ case PAGE_NEXT_UNREAD: - case PAGE_PAGE_DOWN3: - if (!((func == PAGE_NEXT_UNREAD) && tinrc.tab_goto_next_unread) && deactivate_next_ctrl_l()) + if (!((func == PAGE_NEXT_UNREAD) && (tinrc.goto_next_unread & GOTO_NEXT_UNREAD_TAB)) && deactivate_next_ctrl_l()) draw_page(group->name, 0); else { if (curr_line + ARTLINES >= artlines) { /* End is already on screen */ @@ -400,12 +398,7 @@ show_page( goto page_goto_next_unread; case GLOBAL_PAGE_DOWN: - if (tinrc.pgdn_goto_next) - goto page_goto_next_unread; - break; - - case PAGE_PAGE_DOWN3: /* */ - if (tinrc.space_goto_next_unread) + if (tinrc.goto_next_unread & GOTO_NEXT_UNREAD_PGDN) goto page_goto_next_unread; break; @@ -414,7 +407,7 @@ show_page( } info_message(_(txt_end_of_art)); } else { - if ((func == PAGE_NEXT_UNREAD) && tinrc.tab_goto_next_unread) + if ((func == PAGE_NEXT_UNREAD) && (tinrc.goto_next_unread & GOTO_NEXT_UNREAD_TAB)) goto page_goto_next_unread; curr_line += (tinrc.scroll_lines == -2) ? ARTLINES / 2 : ARTLINES; @@ -797,14 +790,14 @@ page_goto_next_unread: case GLOBAL_QUIT: /* return to index page */ return_to_index: XFACE_CLEAR(); - if (filter_state == NO_FILTERING && tinrc.sort_article_type != old_sort_art_type) + if (tinrc.sort_article_type != old_sort_art_type) make_threads(group, TRUE); i = which_thread(this_resp); if (threadnum) *threadnum = which_response(this_resp); - if (filter_state == FILTERING || filtered_articles) { + if (filtered_articles) { int old_top = top_art; long old_artnum = arts[this_resp].artnum; @@ -836,8 +829,7 @@ return_to_index: case GLOBAL_OPTION_MENU: /* option menu */ XFACE_CLEAR(); - if (change_config_file(group) == FILTERING) - filter_state = FILTERING; + change_config_file(group); draw_page(group->name, 0); break; @@ -900,10 +892,13 @@ return_to_index: break; case PAGE_GROUP_SELECT: /* return to group selection page */ +#if 0 + /* Hasn't been used since tin 1.1 PL4 */ if (filter_state == FILTERING) { filter_articles(group); make_threads(group, FALSE); } +#endif /* 0 */ XFACE_CLEAR(); return GRP_RETSELECT; @@ -1027,7 +1022,7 @@ print_message_page( /* * rotN encoding on body and sig data only */ - if ((rotate != 0) && (curr->flags & (C_BODY | C_SIG))) { + if ((rotate != 0) && ((curr->flags & (C_BODY | C_SIG)) || show_all_headers)) { for (p = line; *p; p++) { if (*p >= 'A' && *p <= 'Z') *p = (*p - 'A' + rotate) % 26 + 'A'; diff -Nurp tin-1.9.1/src/pgp.c tin-1.9.2/src/pgp.c --- tin-1.9.1/src/pgp.c 2006-02-15 19:44:37.000000000 +0100 +++ tin-1.9.2/src/pgp.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : PGP support * - * Copyright (c) 1995-2006 Steven J. Madsen + * Copyright (c) 1995-2007 Steven J. Madsen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/post.c tin-1.9.2/src/post.c --- tin-1.9.1/src/post.c 2006-02-15 21:59:16.000000000 +0100 +++ tin-1.9.2/src/post.c 2006-12-22 02:41:55.000000000 +0100 @@ -3,10 +3,10 @@ * Module : post.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-10-12 * Notes : mail/post/replyto/followup/repost & cancel articles * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -125,6 +125,7 @@ static struct msg_header { * Local prototypes */ static FILE *create_mail_headers(char *filename, const char *suffix, const char *to, const char *subject, struct t_header *extra_hdrs); +static char **build_nglist(char *ngs_list, int *ngcnt); static char **split_address_list(const char *addresses, unsigned int *cnt); static char *backup_article_name(const char *the_article); static int add_mail_quote(FILE *fp, int respnum); @@ -147,6 +148,7 @@ static t_bool insert_from_header(const c static t_bool is_crosspost(const char *xref); static t_bool must_include(const char *id); static t_bool repair_article(t_function *result, struct t_group *group); +static t_bool stripped_double_ngs(char **newsgroups, int *ngcnt); static t_bool submit_mail_file(const char *file, struct t_group *group, FILE *articlefp, t_bool include_text); static t_function prompt_rejected(void); static t_function prompt_to_send(const char *subject); @@ -279,7 +281,7 @@ repair_article( if (invoke_editor(article_name, start_line_offset)) return TRUE; } else if (func == GLOBAL_OPTION_MENU) { - (void) change_config_file(group); /*OD:*/ + change_config_file(group); /*OD:*/ return TRUE; } return FALSE; @@ -724,7 +726,8 @@ check_article_to_be_posted( t_bool art_unchanged) { FILE *fp; - char *ngptrs[NGLIMIT], *ftngptrs[NGLIMIT]; + char **newsgroups = NULL; + char **followupto = NULL; char *line, *cp, *cp2; char references[HEADER_LEN]; char subject[HEADER_LEN]; @@ -743,7 +746,6 @@ check_article_to_be_posted( int found_subject_lines = 0; int errors_catbp = 0; /* sum of error-codes */ int warnings_catbp = 0; /* sum of warning-codes */ - size_t nglens[NGLIMIT], ftnglens[NGLIMIT]; struct t_group *psGrp; t_bool end_of_header = FALSE; t_bool got_long_line = FALSE; @@ -774,12 +776,10 @@ check_article_to_be_posted( break; } - if (!contains_8bit) { - for (cp = line; *cp; cp++) { - if (!isascii(*cp)) { - contains_8bit = TRUE; - break; - } + for (cp = line; *cp && !contains_8bit; cp++) { + if (!isascii(*cp)) { + contains_8bit = TRUE; + break; } } #ifdef CHARSET_CONVERSION @@ -956,28 +956,10 @@ check_article_to_be_posted( unfold_header(line); } - strip_double_ngs(cp); - while (*cp) { - if (!(cp2 = strchr(cp, ','))) - cp2 = cp + strlen(cp); - else - *cp2++ = '\0'; - if (ngcnt < NGLIMIT) { - nglens[ngcnt] = strlen(cp); - ngptrs[ngcnt] = my_malloc(nglens[ngcnt] + 1); - if (!ngptrs[ngcnt]) { - for (i = 0; i < ngcnt; i++) - FreeIfNeeded(ngptrs[i]); - for (i = 0; i < ftngcnt; i++) - FreeIfNeeded(ftngptrs[i]); - Raw(oldraw); - return 1; - } - strcpy(ngptrs[ngcnt], cp); - ngcnt++; - } - cp = cp2; - } + newsgroups = build_nglist(cp, &ngcnt); + if (newsgroups && ngcnt) + (void) stripped_double_ngs(newsgroups, &ngcnt); + if (!ngcnt) errors_catbp |= CA_ERROR_EMPTY_NEWSGROUPS; } @@ -987,7 +969,6 @@ check_article_to_be_posted( ; if (strlen(cp)) /* Followup-To not empty */ found_followup_to_lines++; - strip_double_ngs(cp); if (strchr(cp, ' ') || strchr(cp, '\t')) { #ifdef FOLLOW_USEFOR_DRAFT warnings_catbp |= CA_WARNING_SPACE_IN_FOLLOWUP_TO; @@ -1003,28 +984,10 @@ check_article_to_be_posted( #endif /* FOLLOW_USEFOR_DRAFT */ unfold_header(line); } - while (*cp) { - if (!(cp2 = strchr(cp, ','))) - cp2 = cp + strlen(cp); - else - *cp2++ = '\0'; - if (ftngcnt < NGLIMIT) { - ftnglens[ftngcnt] = strlen(cp); - ftngptrs[ftngcnt] = my_malloc(ftnglens[ftngcnt] + 1); - if (!ftngptrs[ftngcnt]) { - /* out of memory? */ - for (i = 0; i < ftngcnt; i++) - FreeIfNeeded(ftngptrs[i]); - for (i = 0; i < ngcnt; i++) - FreeIfNeeded(ngptrs[i]); - Raw(oldraw); - return 1; - } - strcpy(ftngptrs[ftngcnt], cp); - ftngcnt++; - } - cp = cp2; - } + + followupto = build_nglist(cp, &ftngcnt); + if (followupto && ftngcnt) + (void) stripped_double_ngs(followupto, &ftngcnt); } } @@ -1215,7 +1178,7 @@ check_article_to_be_posted( * Is this correct for crosspostings? */ if (ngcnt) - *group = group_find(ngptrs[0]); + *group = group_find(newsgroups[0]); /* * check for known 7bit charsets @@ -1269,7 +1232,7 @@ check_article_to_be_posted( if (errors_catbp & CA_ERROR_MISSING_NEWSGROUPS) my_fprintf(stderr, _(txt_error_header_line_missing), "Newsgroups"); - /* dublicated headers */ + /* duplicated headers */ if (errors_catbp & CA_ERROR_DUPLICATED_FROM) my_fprintf(stderr, _(txt_error_header_duplicate), found_from_lines, "From"); if (errors_catbp & CA_ERROR_DUPLICATED_SUBJECT) @@ -1360,17 +1323,17 @@ check_article_to_be_posted( my_fprintf(stderr, _(txt_warn_article_unchanged)); my_fprintf(stderr, _(txt_art_newsgroups), subject, PLURAL(ngcnt, txt_newsgroup)); for (i = 0; i < ngcnt; i++) { - if ((psGrp = group_find(ngptrs[i]))) - my_fprintf(stderr, " %s\t %s\n", ngptrs[i], BlankIfNull(psGrp->description)); + if ((psGrp = group_find(newsgroups[i]))) + my_fprintf(stderr, " %s\t %s\n", newsgroups[i], BlankIfNull(psGrp->description)); else { #ifdef HAVE_FASCIST_NEWSADMIN StartInverse(); errors++; - my_fprintf(stderr, _(txt_error_not_valid_newsgroup), ngptrs[i]); + my_fprintf(stderr, _(txt_error_not_valid_newsgroup), newsgroups[i]); my_fflush(stderr); EndInverse(); #else - my_fprintf(stderr, (!list_active ? /* did we read the whole active file? */ _(txt_warn_not_in_newsrc) : _(txt_warn_not_valid_newsgroup)), ngptrs[i]); + my_fprintf(stderr, (!list_active ? /* did we read the whole active file? */ _(txt_warn_not_in_newsrc) : _(txt_warn_not_valid_newsgroup)), newsgroups[i]); warnings++; #endif /* HAVE_FASCIST_NEWSADMIN */ } @@ -1406,20 +1369,20 @@ check_article_to_be_posted( #endif /* HAVE_FASCIST_NEWSADMIN */ my_fprintf(stderr, _(txt_followup_newsgroups), PLURAL(ftngcnt, txt_newsgroup)); for (i = 0; i < ftngcnt; i++) { - if ((psGrp = group_find(ftngptrs[i]))) - my_fprintf(stderr, " %s\t %s\n", ftngptrs[i], BlankIfNull(psGrp->description)); + if ((psGrp = group_find(followupto[i]))) + my_fprintf(stderr, " %s\t %s\n", followupto[i], BlankIfNull(psGrp->description)); else { - if (STRCMPEQ("poster", ftngptrs[i])) - my_fprintf(stderr, _(txt_followup_poster), ftngptrs[i]); + if (STRCMPEQ("poster", followupto[i])) + my_fprintf(stderr, _(txt_followup_poster), followupto[i]); else { #ifdef HAVE_FASCIST_NEWSADMIN StartInverse(); - my_fprintf(stderr, _(txt_error_not_valid_newsgroup), ftngptrs[i]); + my_fprintf(stderr, _(txt_error_not_valid_newsgroup), followupto[i]); my_fflush(stderr); EndInverse(); errors++; #else - my_fprintf(stderr, (!list_active ? /* did we read the whole active file? */ _(txt_warn_not_in_newsrc) : _(txt_warn_not_valid_newsgroup)), ftngptrs[i]); + my_fprintf(stderr, (!list_active ? /* did we read the whole active file? */ _(txt_warn_not_in_newsrc) : _(txt_warn_not_valid_newsgroup)), followupto[i]); warnings++; #endif /* HAVE_FASCIST_NEWSADMIN */ } @@ -1441,10 +1404,14 @@ check_article_to_be_posted( Raw(oldraw); /* restore raw/unraw state */ /* free memory */ - for (i = 0; i < ngcnt; i++) - FreeIfNeeded(ngptrs[i]); - for (i = 0; i < ftngcnt; i++) - FreeIfNeeded(ftngptrs[i]); + if (newsgroups && ngcnt) { + FreeIfNeeded(*newsgroups); + FreeIfNeeded(newsgroups); + } + if (followupto && ftngcnt) { + FreeIfNeeded(*followupto); + FreeIfNeeded(followupto); + } return (errors ? 1 : warnings ? 2 : 0); } @@ -1533,7 +1500,7 @@ post_article_loop: return ret_code; case GLOBAL_OPTION_MENU: - (void) change_config_file(group); + change_config_file(group); while ((i = check_article_to_be_posted(article_name, art_type, &group, art_unchanged) == 1) && repair_article(&func, group)) ; break; @@ -3043,11 +3010,18 @@ mail_bug_report( # ifdef _AIX fprintf(fp, "BOX1 : %s %s.%s", system_info.sysname, system_info.version, system_info.release); # else -# ifdef SEIUX +# if defined(SEIUX) || defined(__riscos) +/* + * #if defined(host_mips) && defined(MIPSEB) + * #if defined(SYSTYPE_SYSV) || defined(SYSTYPE_SVR4) || defined(SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + * RISC/os + * #endif + * #endif + */ fprintf(fp, "BOX1 : %s %s", system_info.version, system_info.release); # else fprintf(fp, "BOX1 : %s %s (%s)", system_info.sysname, system_info.release, system_info.machine); -# endif /* SEIUX */ +# endif /* SEIUX || __riscos */ # endif /* _AIX */ #else fprintf(fp, "BOX1 : Please enter the following information: Machine+OS"); @@ -3955,13 +3929,13 @@ checknadd_headers( snprintf(suffix, sizeof(suffix), " (%s/%s.%s)", system_info.sysname, system_info.version, system_info.release); # else -# ifdef SEIUX +# if defined(SEIUX) || defined (__riscos) snprintf(suffix, sizeof(suffix), " (%s/%s)", system_info.version, system_info.release); # else snprintf(suffix, sizeof(suffix), " (%s/%s (%s))", system_info.sysname, system_info.release, system_info.machine); -# endif /* SEIUX */ +# endif /* SEIUX || __riscos */ # endif /* _AIX */ } #endif /* HAVE_SYS_UTSNAME_H && HAVE_UNAME */ @@ -4827,72 +4801,93 @@ radix32( #endif /* EVIL_INSIDE */ -/* - * Strip duplicate newsgroups from within a given list of comma separated - * groups - * 14-Jun-'96 Sven Paulus - */ +static char ** +build_nglist( + char *ngs_list, + int *ngcnt) +{ + char **newsgroups; + char *dst; + char *my_list; + char *src; + char cp; + + /* ulBuildArgv likes to have spaces, not commas */ + my_list = my_malloc(strlen(ngs_list) + 1); + src = ngs_list; + dst = my_list; + while ((cp = *src++)) { + if (cp == ',') cp = ' '; + *dst++ = cp; + } + *dst = cp; + + /* now build the list of newsgroups */ + newsgroups = ulBuildArgv(my_list, ngcnt); + free(my_list); + return newsgroups; +} + + +static t_bool +stripped_double_ngs( + char **newsgroups, + int *ngcnt) +{ + char *that_group; + char *this_group; + unsigned int i = 0; + unsigned int j; + unsigned int k; + t_bool changed = FALSE; + + if (*ngcnt < 2) /* no need to do anything with no or just one group */ + return FALSE; + + while ((this_group = newsgroups[i++])) { + j = i; + while ((that_group = newsgroups[j])) { + if (strcasecmp(this_group, that_group) == 0) { + /* Double newsgroup. Move all following newsgroups downwards */ + k = j + 1; + do { + newsgroups[k-1] = newsgroups[k]; + } while (newsgroups[k++]); + changed = TRUE; + (*ngcnt)--; + } else + j++; + } + } + return changed; +} + + static void strip_double_ngs( char *ngs_list) { - char *ptr; /* start of next (outer) newsgroup */ - char *ptr2; /* temporary pointer */ - char ngroup1[HEADER_LEN]; /* outer newsgroup to compare */ - char ngroup2[HEADER_LEN]; /* inner newsgroup to compare */ - char cmplist[HEADER_LEN]; /* last loops output */ - char newlist[HEADER_LEN]; /* the newly generated list without */ - /* any duplicates of the first nwsg */ - int ncnt1; /* counter for the first newsgroup */ - int ncnt2; /* counter for the second newsgroup */ - t_bool over1; /* TRUE when the outer loop is over */ - t_bool over2; /* TRUE when the inner loop is over */ - - /* shortcut, check if there is only 1 group */ - if (strchr(ngs_list, ',') != NULL) { - over1 = FALSE; - ncnt1 = 0; - strcpy(newlist, ngs_list); /* make a "working copy" */ - ptr = newlist; /* the next outer newsg. is the 1st */ - - while (!over1) { - ncnt1++; /* inc. outer counter */ - strcpy(cmplist, newlist); /* duplicate groups for inner loop */ - ptr2 = strchr(ptr, ','); /* search "," ... */ - if (ptr2 != NULL) { /* if found ... */ - *ptr2 = '\0'; - strcpy(ngroup1, ptr); /* chop off first outer newsgroup */ - ptr = ptr2 + 1; /* pointer points to next newsgr. */ - } else { /* ... if not: last group */ - over1 = TRUE; /* wow, everything is done after . */ - strcpy(ngroup1, ptr); /* ... this last outer newsgroup */ - } + char **newsgroups; + int ngcnt; - over2 = FALSE; - ncnt2 = 0; + if (strchr(ngs_list, ',') == NULL) /* shortcut, only one newsgroup */ + return; - /* - * now compare with each inner newsgroup on the list, - * which is behind the momentary outer newsgroup - * if it is different from the outer newsgroup, append - * to list, strip double-commas - */ - while (!over2) { - ncnt2++; - strcpy(ngroup2, cmplist); - ptr2 = strchr(ngroup2, ','); - if (ptr2 != NULL) { - strcpy(cmplist, ptr2 + 1); - *ptr2 = '\0'; - } else - over2 = TRUE; + if ((newsgroups = build_nglist(ngs_list, &ngcnt)) == NULL) /* something went wrong */ + return; - if ((ncnt2 > ncnt1) && (strcasecmp(ngroup1, ngroup2)) && (strlen(ngroup2) != 0)) { - strcat(newlist, ","); - strcat(newlist, ngroup2); - } - } + if (stripped_double_ngs(newsgroups, &ngcnt)) { + /* something has changed, rebuild newsgroups list */ + char *this_group; + unsigned int i = 0; + + this_group = newsgroups[i++]; + strcpy(ngs_list, this_group); + while ((this_group = newsgroups[i++])) { + strcat(ngs_list, ","); + strcat(ngs_list, this_group); } - strcpy(ngs_list, newlist); /* move string to its real location */ } + free(*newsgroups); + free(newsgroups); } diff -Nurp tin-1.9.1/src/prompt.c tin-1.9.2/src/prompt.c --- tin-1.9.1/src/prompt.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/prompt.c 2006-12-22 02:41:55.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-10-19 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/read.c tin-1.9.2/src/read.c --- tin-1.9.1/src/read.c 2006-02-18 03:37:03.000000000 +0100 +++ tin-1.9.2/src/read.c 2006-12-22 02:41:55.000000000 +0100 @@ -5,7 +5,7 @@ * Created : 1997-04-10 * Updated : 2006-02-15 * - * Copyright (c) 1997-2006 Jason Faultless + * Copyright (c) 1997-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/refs.c tin-1.9.2/src/refs.c --- tin-1.9.1/src/refs.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/refs.c 2006-12-22 02:41:56.000000000 +0100 @@ -8,7 +8,7 @@ * Credits : Richard Hodson * hash_msgid, free_msgid * - * Copyright (c) 1996-2006 Jason Faultless + * Copyright (c) 1996-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/regex.c tin-1.9.2/src/regex.c --- tin-1.9.1/src/regex.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/regex.c 2006-12-22 02:41:56.000000000 +0100 @@ -7,7 +7,7 @@ * Notes : Regular expression subroutines * Credits : * - * Copyright (c) 1997-2006 Jason Faultless + * Copyright (c) 1997-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/rfc1524.c tin-1.9.2/src/rfc1524.c --- tin-1.9.1/src/rfc1524.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/rfc1524.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : mailcap parsing as defined in RFC 1524 * - * Copyright (c) 2000-2006 Urs Janssen , Jason Faultless + * Copyright (c) 2000-2007 Urs Janssen , Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/rfc2045.c tin-1.9.2/src/rfc2045.c --- tin-1.9.1/src/rfc2045.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/rfc2045.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-05-10 * Notes : RFC 2045/2047 encoding * - * Copyright (c) 1995-2006 Chris Blum + * Copyright (c) 1995-2007 Chris Blum * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/rfc2046.c tin-1.9.2/src/rfc2046.c --- tin-1.9.1/src/rfc2046.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/rfc2046.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : RFC 2046 MIME article parsing * - * Copyright (c) 2000-2006 Jason Faultless + * Copyright (c) 2000-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/rfc2047.c tin-1.9.2/src/rfc2047.c --- tin-1.9.1/src/rfc2047.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/rfc2047.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : MIME header encoding/decoding stuff * - * Copyright (c) 1995-2006 Chris Blum + * Copyright (c) 1995-2007 Chris Blum * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/save.c tin-1.9.2/src/save.c --- tin-1.9.1/src/save.c 2006-02-15 22:23:50.000000000 +0100 +++ tin-1.9.2/src/save.c 2006-12-22 02:41:56.000000000 +0100 @@ -3,10 +3,10 @@ * Module : save.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2006-02-15 + * Updated : 2006-09-02 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,6 +59,7 @@ static FILE *open_save_filename(const ch static int match_content_type(t_part *part, char *type); static t_bool check_save_mime_type(t_part *part, const char *mime_types); static t_bool decode_save_one(t_part *part, FILE *rawfp, t_bool postproc); +static t_bool expand_save_filename(char *outpath, const char *path); static void generate_filename(char *buf, int buflen, const char *suffix); static void post_process_uud(void); static void post_process_sh(void); @@ -600,26 +601,31 @@ generate_filename( * Expand metacharacters and use defaults as needed. * Return TRUE if the path is a mailbox, or FALSE otherwise. */ -t_bool +static t_bool expand_save_filename( char *outpath, const char *path) { - int ret = strfpath(path, outpath, PATH_LEN, curr_group); + char base_filename[PATH_LEN]; + char buf[PATH_LEN]; + char buf_path[PATH_LEN]; + int ret; /* - * If no path exists or the above failed in some way, use sensible defaults - * Put the generic path into 'outpath' + * Make sure that externally supplied filename is a filename only and fits + * into buffer */ - if ((ret == 0) || !(strrchr(outpath, DIRSEP))) { - char buf[PATH_LEN]; + STRCPY(buf_path, path); base_name(buf_path, base_filename); - if (!strfpath(curr_group->attribute->savedir, buf, sizeof(buf), curr_group)) - joinpath(buf, homedir, DEFAULT_SAVEDIR); - joinpath(outpath, buf, path); - return FALSE; - } else - return (ret == 1); + /* Build default path to save to */ + if (!(ret = strfpath(curr_group->attribute->savedir, buf, sizeof(buf), curr_group))) + joinpath(buf, homedir, DEFAULT_SAVEDIR); + + /* Join path and filename */ + /* TODO: make sure full path fits into outpath! */ + joinpath(outpath, buf, base_filename); + + return (ret == 1); /* should now always evaluate to FALSE */ } diff -Nurp tin-1.9.1/src/screen.c tin-1.9.2/src/screen.c --- tin-1.9.1/src/screen.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/screen.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-02-11 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/search.c tin-1.9.2/src/search.c --- tin-1.9.1/src/search.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/search.c 2006-12-22 02:41:56.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/select.c tin-1.9.2/src/select.c --- tin-1.9.1/src/select.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/select.c 2006-12-22 02:41:56.000000000 +0100 @@ -3,10 +3,10 @@ * Module : select.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2005-07-02 + * Updated : 2006-10-01 * Notes : * - * Copyright (c) 1991-2006 Iain Lea , Rich Skrenta + * Copyright (c) 1991-2007 Iain Lea , Rich Skrenta * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -342,7 +342,7 @@ selection_page( break; case GLOBAL_OPTION_MENU: - (void) change_config_file(NULL); + change_config_file(NULL); read_attributes_files(); show_selection_page(); break; diff -Nurp tin-1.9.1/src/sigfile.c tin-1.9.2/src/sigfile.c --- tin-1.9.1/src/sigfile.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/sigfile.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2003-09-19 * Notes : Generate random signature for posting/mailing etc. * - * Copyright (c) 1992-2006 Mike Gleason + * Copyright (c) 1992-2007 Mike Gleason * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/signal.c tin-1.9.2/src/signal.c --- tin-1.9.1/src/signal.c 2006-02-15 21:55:30.000000000 +0100 +++ tin-1.9.2/src/signal.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2006-02-15 * Notes : signal handlers for different modes and window resizing * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/strftime.c tin-1.9.2/src/strftime.c --- tin-1.9.1/src/strftime.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/strftime.c 2006-12-22 02:41:57.000000000 +0100 @@ -12,7 +12,7 @@ * tm = localtime(&secs); * num = strftime(buf, sizeof(buf), "%a %d-%m-%y %H:%M:%S", tm); * - * Copyright (c) 1991-2006 Arnold Robbins + * Copyright (c) 1991-2007 Arnold Robbins * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/string.c tin-1.9.2/src/string.c --- tin-1.9.1/src/string.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/string.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-11-04 * Notes : * - * Copyright (c) 1997-2006 Urs Janssen + * Copyright (c) 1997-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/tags.c tin-1.9.2/src/tags.c --- tin-1.9.1/src/tags.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/tags.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-05-10 * Notes : Split out from other modules * - * Copyright (c) 1999-2006 Jason Faultless + * Copyright (c) 1999-2007 Jason Faultless * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/tcurses.c tin-1.9.2/src/tcurses.c --- tin-1.9.1/src/tcurses.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/tcurses.c 2007-01-25 20:32:32.474556696 +0100 @@ -3,11 +3,11 @@ * Module : tcurses.c * Author : Thomas Dickey * Created : 1997-03-02 - * Updated : 2004-06-07 + * Updated : 2007-01-25 * Notes : This is a set of wrapper functions adapting the termcap * interface of tin to use SVr4 curses (e.g., ncurses). * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -582,6 +582,7 @@ again: /* read in the multibyte sequence */ char *mbs = my_malloc(MB_CUR_MAX + 1); int i, ch; + wchar_t wc; mbs[0] = (char) wch; nodelay(stdscr, TRUE); @@ -594,12 +595,14 @@ again: nodelay(stdscr, FALSE); mbs[i] = '\0'; - res = mbtowc((wchar_t *) (&wch), mbs, MB_CUR_MAX); + res = mbtowc(&wc, mbs, MB_CUR_MAX); free(mbs); if (res == -1) return WEOF; /* error */ - else + else { res = OK; + wch = wc; + } } else { res = KEY_CODE_YES; # if defined(KEY_RESIZE) && defined(USE_CURSES) diff -Nurp tin-1.9.1/src/thread.c tin-1.9.2/src/thread.c --- tin-1.9.1/src/thread.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/thread.c 2006-12-22 02:41:57.000000000 +0100 @@ -3,10 +3,10 @@ * Module : thread.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2005-07-27 + * Updated : 2006-09-16 * Notes : * - * Copyright (c) 1991-2006 Iain Lea + * Copyright (c) 1991-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -448,7 +448,7 @@ thread_page( * See if we're on a direct call from the group menu to the pager */ if (page) { - if ((ret_code = enter_pager(page->art, page->ignore_unavail, GROUP_LEVEL)) != 0) + if ((ret_code = enter_pager(page->art, page->ignore_unavail, GROUP_LEVEL)) != 0) return ret_code; /* else fall through to stay in thread level */ } @@ -1467,6 +1467,7 @@ again: case GRP_GOTOTHREAD: /* 'l' from pager */ show_thread_page(); + move_to_item(which_response(this_resp)); return 0; default: /* >=0 normal exit, new basenote */ diff -Nurp tin-1.9.1/src/tincfg.tbl tin-1.9.2/src/tincfg.tbl --- tin-1.9.1/src/tincfg.tbl 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/tincfg.tbl 2006-12-21 14:41:19.000000000 +0100 @@ -2,7 +2,7 @@ ; Module : tincfg.tbl ; Author : Thomas E. Dickey ; Created : 1996-11-01 -; Updated : 2005-06-20 +; Updated : 2006-06-28 ; Notes : #defines and structs for config.c ; ; Copyright (c) 1996-2005 Thomas E. Dickey @@ -45,14 +45,12 @@ thread_articles txt_threading THREAD_MAX+1 thread_perc OPT_NUM sort_article_type txt_sort_a_type SORT_ARTICLES_BY_LINES_ASCEND+1 - sort_threads_type txt_sort_t_type SORT_THREADS_BY_SCORE_ASCEND+1 + sort_threads_type txt_sort_t_type SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND+1 pos_first_unread OPT_ON_OFF show_only_unread_arts OPT_ON_OFF show_only_unread_groups OPT_ON_OFF kill_level txt_kill_level_type KILL_NOTHREAD+1 - tab_goto_next_unread OPT_ON_OFF - space_goto_next_unread OPT_ON_OFF - pgdn_goto_next OPT_ON_OFF + goto_next_unread txt_goto_next_unread_options NUM_GOTO_NEXT_UNREAD auto_list_thread OPT_ON_OFF wrap_on_next_unread OPT_ON_OFF art_marked_deleted OPT_CHAR @@ -199,6 +197,8 @@ underscores_regex OPT_STRING strip_re_regex OPT_STRING strip_was_regex OPT_STRING + verbatim_begin_regex OPT_STRING + verbatim_end_regex OPT_STRING force_screen_redraw OPT_ON_OFF start_editor_offset OPT_ON_OFF editor_format OPT_STRING diff -Nurp tin-1.9.1/src/trace.c tin-1.9.2/src/trace.c --- tin-1.9.1/src/trace.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/trace.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2001-07-22 * Notes : debugging support via TRACE macro. * - * Copyright (c) 1997-2006 Thomas Dickey + * Copyright (c) 1997-2007 Thomas Dickey * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/version.c tin-1.9.2/src/version.c --- tin-1.9.1/src/version.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/version.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-07-02 * Notes : * - * Copyright (c) 2003-2006 Urs Janssen + * Copyright (c) 2003-2007 Urs Janssen * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/xface.c tin-1.9.2/src/xface.c --- tin-1.9.1/src/xface.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/xface.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2004-07-27 * Notes : * - * Copyright (c) 2003-2006 Joshua Crawford & Drazen Kacar + * Copyright (c) 2003-2007 Joshua Crawford & Drazen Kacar * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/src/xref.c tin-1.9.2/src/xref.c --- tin-1.9.1/src/xref.c 2006-02-15 19:44:38.000000000 +0100 +++ tin-1.9.2/src/xref.c 2006-12-22 02:41:57.000000000 +0100 @@ -6,7 +6,7 @@ * Updated : 2005-05-04 * Notes : * - * Copyright (c) 1993-2006 Iain Lea + * Copyright (c) 1993-2007 Iain Lea * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff -Nurp tin-1.9.1/tin.spec tin-1.9.2/tin.spec --- tin-1.9.1/tin.spec 2006-02-28 20:27:56.000000000 +0100 +++ tin-1.9.2/tin.spec 2006-12-21 14:41:15.000000000 +0100 @@ -1,10 +1,10 @@ Name: tin Summary: tin - an easy-to-use USENET news reader -Version: 1.9.1 +Version: 1.9.2 Release: 1 Copyright: BSD Group: Applications/News -Source: ftp://ftp.tin.org/pub/news/clients/tin/v1.8/%{name}-%{version}.tar.bz2 +Source: ftp://ftp.tin.org/pub/news/clients/tin/v1.9/%{name}-%{version}.tar.bz2 Buildroot: /var/tmp/%{name}-%{version}-%{release} Packager: Dirk Nimmich diff -Nurp tin-1.9.1/tools/tinews.pl tin-1.9.2/tools/tinews.pl --- tin-1.9.1/tools/tinews.pl 2006-03-04 12:56:50.000000000 +0100 +++ tin-1.9.2/tools/tinews.pl 2006-12-22 02:44:28.404255775 +0100 @@ -4,7 +4,7 @@ # signs the article and posts it. # # -# Copyright (c) 2002-2006 Urs Janssen , +# Copyright (c) 2002-2007 Urs Janssen , # Marc Brockschmidt # # Redistribution and use in source and binary forms, with or without .