-----------------------------------------------------------------------------
 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 <dickey@invisible-island.net>
 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 <dickey@invisible-island.net>
+dnl Copyright (c) 1995-2007 Thomas E. Dickey <dickey@invisible-island.net>
 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 <libintl.h>
 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 <libintl.h>
+	     CF_FIND_LINKAGE([#include <libintl.h>
 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 <stdio.h>
+#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 <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
@@ -959,6 +959,12 @@ else
   withval="${DESTDIR-/}"
 fi
 
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
 case ".$withval" in #(vi
 .\$\(*\)*|.\'*\'*) #(vi
   ;;
@@ -970,19 +976,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 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 <<EOF
-#line 1288 "configure"
+#line 1294 "configure"
 #include "confdefs.h"
 #include <assert.h>
 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 <<EOF
-#line 1305 "configure"
+#line 1311 "configure"
 #include "confdefs.h"
 #include <assert.h>
 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 <<EOF
-#line 1322 "configure"
+#line 1328 "configure"
 #include "confdefs.h"
 #include <assert.h>
 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 <<EOF
-#line 1360 "configure"
+#line 1366 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -1374,7 +1380,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 1378 "configure"
+#line 1384 "configure"
 #include "confdefs.h"
 #include <termio.h>
 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 <<EOF
-#line 1579 "configure"
+#line 1585 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1598,7 +1604,7 @@ rm -f conftest*
 
 
 echo $ac_n "checking if $CC -U and -D options work together""... $ac_c" 1>&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 <<EOF
-#line 1610 "configure"
+#line 1616 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1620,7 +1626,7 @@ make a defined-error
 	
 ; return 0; }
 EOF
-if { (eval echo configure:1624: \"$ac_compile\") 1>&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 <<EOF
-#line 1676 "configure"
+#line 1682 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1696 "configure"
+#line 1702 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1756 "configure"
+#line 1762 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1776 "configure"
+#line 1782 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1850 "configure"
+#line 1856 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1882 "configure"
+#line 1888 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1911 "configure"
+#line 1917 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 1965 "configure"
+#line 1971 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1972,7 +1978,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:1976: \"$ac_link\") 1>&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 <<EOF
-#line 2096 "configure"
+#line 2102 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2108,7 +2114,7 @@ int main() {
 	struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:2112: \"$ac_compile\") 1>&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 <<EOF
-#line 2225 "configure"
+#line 2231 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2232,7 +2238,7 @@ int main() {
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:2236: \"$ac_compile\") 1>&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 <<EOF
-#line 2258 "configure"
+#line 2264 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:2265: \"$ac_compile\") 1>&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 <<EOF
 #define PATH_ISPELL "$withval"
@@ -2826,7 +2837,7 @@ else
   # Extract the first word of "ispell", so it can be a program name with args.
 set dummy ispell; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
 #define PATH_METAMAIL "$withval"
@@ -2900,7 +2911,7 @@ else
   # Extract the first word of "metamail", so it can be a program name with args.
 set dummy metamail; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
 #define PATH_SUM "$withval"
@@ -2974,7 +2985,7 @@ else
   # Extract the first word of "sum", so it can be a program name with args.
 set dummy sum; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
 #define PATH_PGP "$withval"
@@ -3376,7 +3387,7 @@ else
   # Extract the first word of "pgp", so it can be a program name with args.
 set dummy pgp; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
 #define PATH_PGPK "$withval"
@@ -3451,7 +3462,7 @@ else
   # Extract the first word of "pgpk", so it can be a program name with args.
 set dummy pgpk; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
 #define PATH_GPG "$withval"
@@ -3526,7 +3537,7 @@ else
   # Extract the first word of "gpg", so it can be a program name with args.
 set dummy gpg; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&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 <<EOF
-#line 3593 "configure"
+#line 3604 "configure"
 #include "confdefs.h"
 
 #include <sys/params.h>
@@ -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 <<EOF
-#line 3910 "configure"
+#line 3921 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3918,7 +3929,7 @@ make an error
 
 ; return 0; }
 EOF
-if { (eval echo configure:3922: \"$ac_compile\") 1>&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 <<EOF
-#line 3940 "configure"
+#line 3951 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -3955,7 +3966,7 @@ then
 # warning #269: invalid format string conversion
 
 	echo "checking for $CC warning options" 1>&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 <<EOF
-#line 4411 "configure"
+#line 4446 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -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 <<EOF
-#line 4450 "configure"
+#line 4485 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4469,7 +4504,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4473: \"$ac_link\") 1>&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 <<EOF
-#line 4504 "configure"
+#line 4539 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4511,7 +4546,7 @@ int main() {
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:4515: \"$ac_link\") 1>&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 <<EOF
-#line 4556 "configure"
+#line 4591 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4563,7 +4598,7 @@ int main() {
 gethostname()
 ; return 0; }
 EOF
-if { (eval echo configure:4567: \"$ac_link\") 1>&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 <<EOF
-#line 4620 "configure"
+#line 4655 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:4627: \"$ac_link\") 1>&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 <<EOF
-#line 4657 "configure"
+#line 4692 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4676,7 +4711,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4680: \"$ac_link\") 1>&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 <<EOF
-#line 4711 "configure"
+#line 4746 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4718,7 +4753,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:4722: \"$ac_link\") 1>&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 <<EOF
-#line 4763 "configure"
+#line 4798 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4770,7 +4805,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:4774: \"$ac_link\") 1>&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 <<EOF
-#line 4824 "configure"
+#line 4859 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4843,7 +4878,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4847: \"$ac_link\") 1>&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 <<EOF
-#line 4878 "configure"
+#line 4913 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4885,7 +4920,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:4889: \"$ac_link\") 1>&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 <<EOF
-#line 4935 "configure"
+#line 4970 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4954,7 +4989,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4958: \"$ac_link\") 1>&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 <<EOF
-#line 4989 "configure"
+#line 5024 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4996,7 +5031,7 @@ int main() {
 strcasecmp()
 ; return 0; }
 EOF
-if { (eval echo configure:5000: \"$ac_link\") 1>&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 <<EOF
-#line 5075 "configure"
+#line 5110 "configure"
 #include "confdefs.h"
 
 #include <socks.h>
@@ -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 <<EOF
-#line 5096 "configure"
+#line 5131 "configure"
 #include "confdefs.h"
 #include <socks.h>
 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 <<EOF
-#line 5170 "configure"
+#line 5205 "configure"
 #include "confdefs.h"
 
 #define INCLUDE_PROTOTYPES
@@ -5176,7 +5211,7 @@ int main() {
 	init((char *)0)
 ; return 0; }
 EOF
-if { (eval echo configure:5180: \"$ac_compile\") 1>&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
-#line 5211 "configure"
+#line 5246 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 5248 "configure"
+#line 5283 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char fcntl(); below.  */
@@ -5267,7 +5302,7 @@ fcntl();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5271: \"$ac_link\") 1>&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 <<EOF
-#line 5296 "configure"
+#line 5331 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char lockf(); below.  */
@@ -5315,7 +5350,7 @@ lockf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5319: \"$ac_link\") 1>&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 <<EOF
-#line 5344 "configure"
+#line 5379 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char flock(); below.  */
@@ -5363,7 +5398,7 @@ flock();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5367: \"$ac_link\") 1>&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 <<EOF
-#line 5400 "configure"
+#line 5435 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -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 <<EOF
-#line 5440 "configure"
+#line 5475 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -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 <<EOF
-#line 5472 "configure"
+#line 5507 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -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 <<EOF
-#line 5719 "configure"
+#line 5760 "configure"
 #include "confdefs.h"
 
 
@@ -5736,7 +5777,7 @@ printf("old\n");
 	
 ; return 0; }
 EOF
-if { (eval echo configure:5740: \"$ac_compile\") 1>&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 <<EOF
-#line 5858 "configure"
+#line 5902 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
-#line 5892 "configure"
+#line 5936 "configure"
 #include "confdefs.h"
 
 
@@ -5909,7 +5953,7 @@ printf("old\n");
 	
 ; return 0; }
 EOF
-if { (eval echo configure:5913: \"$ac_compile\") 1>&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 <<EOF
-#line 5960 "configure"
+#line 6004 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
+#line 6081 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+#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 <<EOF
-#line 6057 "configure"
+#line 6181 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 6120 "configure"
+#line 6244 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6127,7 +6251,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:6131: \"$ac_link\") 1>&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 <<EOF
-#line 6155 "configure"
+#line 6279 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6162,7 +6286,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6166: \"$ac_link\") 1>&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 <<EOF
-#line 6206 "configure"
+#line 6330 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6213,7 +6337,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:6217: \"$ac_link\") 1>&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 <<EOF
-#line 6256 "configure"
+#line 6380 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -6275,7 +6399,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6279: \"$ac_link\") 1>&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 <<EOF
-#line 6302 "configure"
+#line 6426 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 6381 "configure"
+#line 6505 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 6428 "configure"
+#line 6552 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 6464 "configure"
+#line 6588 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 6504 "configure"
+#line 6628 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #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 <<EOF
-#line 6550 "configure"
+#line 6674 "configure"
 #include "confdefs.h"
 #include <libutf8.h>
 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 <<EOF
-#line 6628 "configure"
+#line 6752 "configure"
 #include "confdefs.h"
 
 
@@ -6653,7 +6777,7 @@ printf("old\n");
 	
 ; return 0; }
 EOF
-if { (eval echo configure:6657: \"$ac_compile\") 1>&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 <<EOF
-#line 6775 "configure"
+#line 6902 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
-#line 6809 "configure"
+#line 6936 "configure"
 #include "confdefs.h"
 
 
-#define _XOPEN_SOURCE_EXTENDED
-#undef  HAVE_LIBUTF8_H	/* in case we used CF_UTF8_LIB */
-#define HAVE_LIBUTF8_H	/* to force ncurses' header file to use cchar_t */
-
 #include <$cf_header>
 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 <<EOF
-#line 6885 "configure"
+#line 7004 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
+#line 7081 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+#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 <<EOF
-#line 6982 "configure"
+#line 7181 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 7045 "configure"
+#line 7244 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7052,7 +7251,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:7056: \"$ac_link\") 1>&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 <<EOF
-#line 7080 "configure"
+#line 7279 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7087,7 +7286,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7091: \"$ac_link\") 1>&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 <<EOF
-#line 7131 "configure"
+#line 7330 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7138,7 +7337,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7142: \"$ac_link\") 1>&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 <<EOF
-#line 7181 "configure"
+#line 7380 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -7200,7 +7399,7 @@ initscr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7204: \"$ac_link\") 1>&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 <<EOF
-#line 7227 "configure"
+#line 7426 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 7306 "configure"
+#line 7505 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 7353 "configure"
+#line 7552 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 7418 "configure"
+#line 7617 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 7471 "configure"
+#line 7670 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -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 <<EOF
-#line 7491 "configure"
+#line 7690 "configure"
 #include "confdefs.h"
 
 #define _XOPEN_SOURCE_EXTENDED
@@ -7500,7 +7699,7 @@ int main() {
 	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:7504: \"$ac_link\") 1>&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 <<EOF
-#line 7564 "configure"
+#line 7764 "configure"
 #include "confdefs.h"
 #include <${cf_header}>
 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
-#line 7599 "configure"
+#line 7799 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
+#line 7850 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+#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 <<EOF
-#line 7637 "configure"
+#line 7912 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 7668 "configure"
+#line 7943 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7675,7 +7950,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7679: \"$ac_link\") 1>&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 <<EOF
-#line 7710 "configure"
+#line 7985 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7717,7 +7992,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7721: \"$ac_link\") 1>&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 <<EOF
-#line 7752 "configure"
+#line 8027 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7759,7 +8034,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7763: \"$ac_link\") 1>&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 <<EOF
-#line 7821 "configure"
+#line 8096 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char tgoto(); below.  */
@@ -7840,7 +8115,7 @@ tgoto();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7844: \"$ac_link\") 1>&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 <<EOF
-#line 7873 "configure"
+#line 8148 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7880,7 +8155,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:7884: \"$ac_link\") 1>&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 <<EOF
-#line 7922 "configure"
+#line 8197 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7929,7 +8204,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:7933: \"$ac_link\") 1>&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 <<EOF
-#line 7961 "configure"
+#line 8236 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 7986 "configure"
+#line 8261 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 8003 "configure"
+#line 8278 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 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 <<EOF
-#line 8066 "configure"
+#line 8341 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 8119 "configure"
+#line 8394 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -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 <<EOF
-#line 8139 "configure"
+#line 8414 "configure"
 #include "confdefs.h"
 
 #define _XOPEN_SOURCE_EXTENDED
@@ -8148,7 +8423,7 @@ int main() {
 	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:8152: \"$ac_link\") 1>&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
-#line 8263 "configure"
+#line 8544 "configure"
 #include "confdefs.h"
 #include <dbmalloc.h>
 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 <<EOF
-#line 8293 "configure"
+#line 8574 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8300,7 +8581,7 @@ int main() {
 debug_malloc()
 ; return 0; }
 EOF
-if { (eval echo configure:8304: \"$ac_link\") 1>&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
-#line 8351 "configure"
+#line 8632 "configure"
 #include "confdefs.h"
 #include <dmalloc.h>
 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 <<EOF
-#line 8381 "configure"
+#line 8662 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8388,7 +8669,7 @@ int main() {
 dmalloc_debug()
 ; return 0; }
 EOF
-if { (eval echo configure:8392: \"$ac_link\") 1>&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 <<EOF
-#line 8443 "configure"
+#line 8724 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _tracef(); below.  */
@@ -8462,7 +8743,7 @@ _tracef();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8466: \"$ac_link\") 1>&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 <<EOF
-#line 8496 "configure"
+#line 8777 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8503,7 +8784,7 @@ int main() {
 _tracef()
 ; return 0; }
 EOF
-if { (eval echo configure:8507: \"$ac_link\") 1>&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 <<EOF
@@ -9069,7 +9356,7 @@ EOF
 
 ### check for ipv6 support
 echo $ac_n "checking whether to enable IPv6""... $ac_c" 1>&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 <<EOF
-#line 9114 "configure"
+#line 9401 "configure"
 #include "confdefs.h"
 
 #include <netinet/in.h>
@@ -9128,7 +9415,7 @@ rm -f conftest*
 		;;
 	kame) #(vi
 				cat > conftest.$ac_ext <<EOF
-#line 9132 "configure"
+#line 9419 "configure"
 #include "confdefs.h"
 
 #include <netinet/in.h>
@@ -9146,7 +9433,7 @@ rm -f conftest*
 		;;
 	linux-glibc) #(vi
 				cat > conftest.$ac_ext <<EOF
-#line 9150 "configure"
+#line 9437 "configure"
 #include "confdefs.h"
 
 #include <features.h>
@@ -9173,7 +9460,7 @@ rm -f conftest*
 		;;
 	toshiba) #(vi
 		cat > conftest.$ac_ext <<EOF
-#line 9177 "configure"
+#line 9464 "configure"
 #include "confdefs.h"
 
 #include <sys/param.h>
@@ -9191,7 +9478,7 @@ rm -f conftest*
 		;;
 	v6d) #(vi
 		cat > conftest.$ac_ext <<EOF
-#line 9195 "configure"
+#line 9482 "configure"
 #include "confdefs.h"
 
 #include </usr/local/v6/include/sys/v6config.h>
@@ -9209,7 +9496,7 @@ rm -f conftest*
 		;;
 	zeta)
 		cat > conftest.$ac_ext <<EOF
-#line 9213 "configure"
+#line 9500 "configure"
 #include "confdefs.h"
 
 #include <sys/param.h>
@@ -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 <<EOF
-#line 9280 "configure"
+#line 9567 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 9393 "configure"
+#line 9680 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getaddrinfo(); below.  */
@@ -9412,7 +9699,7 @@ getaddrinfo();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9416: \"$ac_link\") 1>&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 <<EOF
-#line 9439 "configure"
+#line 9726 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 9522 "configure"
+#line 9809 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 9575 "configure"
+#line 9862 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 9703 "configure"
+#line 9990 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9722,7 +10009,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9726: \"$ac_link\") 1>&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 <<EOF
-#line 9830 "configure"
+#line 10118 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -9875,7 +10163,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:9879: \"$ac_compile\") 1>&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 <<EOF
-#line 9907 "configure"
+#line 10195 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:9914: \"$ac_compile\") 1>&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 <<EOF
-#line 9947 "configure"
+#line 10235 "configure"
 #include "confdefs.h"
 
 #define string(n) #n
@@ -9951,7 +10239,7 @@ int main() {
 char *s = string(token)
 ; return 0; }
 EOF
-if { (eval echo configure:9955: \"$ac_compile\") 1>&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 <<EOF
-#line 9982 "configure"
+#line 10270 "configure"
 #include "confdefs.h"
 
 #define concat(a,b) a ## b
@@ -9986,7 +10274,7 @@ int main() {
 char *firstlast = "y", *s = concat(first,last)
 ; return 0; }
 EOF
-if { (eval echo configure:9990: \"$ac_compile\") 1>&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 <<EOF
-#line 10017 "configure"
+#line 10305 "configure"
 #include "confdefs.h"
 
 int main() {
 extern void (*sigdisp(int sig, void (*func)(int sig)))(int sig)
 ; return 0; }
 EOF
-if { (eval echo configure:10024: \"$ac_compile\") 1>&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 <<EOF
-#line 10052 "configure"
+#line 10340 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -10056,7 +10344,7 @@ else
 #include <float.h>
 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
-#line 10077 "configure"
+#line 10365 "configure"
 #include "confdefs.h"
 #include <string.h>
 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
-#line 10095 "configure"
+#line 10383 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -10112,7 +10400,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 10116 "configure"
+#line 10404 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #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 <<EOF
-#line 10160 "configure"
+#line 10448 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10201 "configure"
+#line 10489 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10208,7 +10496,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:10212: \"$ac_link\") 1>&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 <<EOF
-#line 10242 "configure"
+#line 10530 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10249,7 +10537,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:10253: \"$ac_link\") 1>&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 <<EOF
-#line 10281 "configure"
+#line 10569 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -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 <<EOF
-#line 10316 "configure"
+#line 10604 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -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 <<EOF
-#line 10413 "configure"
+#line 10701 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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
-#line 10462 "configure"
+#line 10750 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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
-#line 10503 "configure"
+#line 10791 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 10545 "configure"
+#line 10833 "configure"
 #include "confdefs.h"
 #include <termios.h>
 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 <<EOF
-#line 10561 "configure"
+#line 10849 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -10566,7 +10854,7 @@ int main() {
 struct termios foo; int x = foo.c_iflag
 ; return 0; }
 EOF
-if { (eval echo configure:10570: \"$ac_compile\") 1>&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 <<EOF
-#line 10607 "configure"
+#line 10895 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10693 "configure"
+#line 10981 "configure"
 #include "confdefs.h"
 
 #define yes 1
@@ -10717,7 +11005,7 @@ int main() {
 struct timeval foo
 ; return 0; }
 EOF
-if { (eval echo configure:10721: \"$ac_compile\") 1>&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 <<EOF
-#line 10750 "configure"
+#line 11038 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10783 "configure"
+#line 11071 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10816 "configure"
+#line 11104 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10849 "configure"
+#line 11137 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10882 "configure"
+#line 11170 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10915 "configure"
+#line 11203 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 10948 "configure"
+#line 11236 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -10972,7 +11260,7 @@ EOF
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 10976 "configure"
+#line 11264 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
@@ -10983,7 +11271,7 @@ else
   rm -rf conftest*
   
 	cat > conftest.$ac_ext <<EOF
-#line 10987 "configure"
+#line 11275 "configure"
 #include "confdefs.h"
 #include <sys/endian.h>
 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 <<EOF
-#line 11003 "configure"
+#line 11291 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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
-#line 11044 "configure"
+#line 11332 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 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 <<EOF
-#line 11076 "configure"
+#line 11364 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 11110 "configure"
+#line 11398 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 11140 "configure"
+#line 11428 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_LANGINFO_H
@@ -11151,7 +11439,7 @@ int main() {
 nl_item x; x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:11155: \"$ac_compile\") 1>&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 <<EOF
-#line 11185 "configure"
+#line 11473 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11192,7 +11480,7 @@ int main() {
 UUInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:11196: \"$ac_link\") 1>&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
-#line 11218 "configure"
+#line 11506 "configure"
 #include "confdefs.h"
 #include <uudeview.h>
 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 <<EOF
-#line 11269 "configure"
+#line 11557 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11276,7 +11564,7 @@ int main() {
 stringprep_check_version()
 ; return 0; }
 EOF
-if { (eval echo configure:11280: \"$ac_link\") 1>&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
-#line 11302 "configure"
+#line 11590 "configure"
 #include "confdefs.h"
 #include <stringprep.h>
 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
-#line 11335 "configure"
+#line 11623 "configure"
 #include "confdefs.h"
 #include <idna.h>
 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 <<EOF
-#line 11370 "configure"
+#line 11658 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11377,7 +11665,7 @@ int main() {
 idna_to_unicode_lzlz()
 ; return 0; }
 EOF
-if { (eval echo configure:11381: \"$ac_link\") 1>&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
-#line 11404 "configure"
+#line 11692 "configure"
 #include "confdefs.h"
 #include <idna.h>
 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
-#line 11458 "configure"
+#line 11746 "configure"
 #include "confdefs.h"
 #include <unicode/unorm.h>
 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
-#line 11487 "configure"
+#line 11775 "configure"
 #include "confdefs.h"
 #include <unicode/ustring.h>
 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 <<EOF
-#line 11523 "configure"
+#line 11811 "configure"
 #include "confdefs.h"
 #include <unicode/unorm.h>
 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
-#line 11557 "configure"
+#line 11845 "configure"
 #include "confdefs.h"
 #include <unicode/ubidi.h>
 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 <<EOF
-#line 11609 "configure"
+#line 11897 "configure"
 #include "confdefs.h"
 
 int main() {
 char *x=(char*)tgoto("",0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:11616: \"$ac_link\") 1>&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 <<EOF
-#line 11619 "configure"
+#line 11907 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=tigetstr("")
 ; return 0; }
 EOF
-if { (eval echo configure:11626: \"$ac_link\") 1>&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 <<EOF
-#line 11657 "configure"
+#line 11945 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=$cf_func("")
 ; return 0; }
 EOF
-if { (eval echo configure:11664: \"$ac_link\") 1>&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 <<EOF
-#line 11699 "configure"
+#line 11987 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11706,7 +11994,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:11710: \"$ac_link\") 1>&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 <<EOF
-#line 11739 "configure"
+#line 12027 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11746,7 +12034,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:11750: \"$ac_link\") 1>&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 <curses.h>,
 	# which may/may not be compatible with <termcap.h>
 	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 <<EOF
-#line 11787 "configure"
+#line 12075 "configure"
 #include "confdefs.h"
 
 #define HAVE_TERMCAP_H 1
@@ -11796,7 +12084,7 @@ make an error
 
 ; return 0; }
 EOF
-if { (eval echo configure:11800: \"$ac_compile\") 1>&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 <<EOF
-#line 11831 "configure"
+#line 12119 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 11899 "configure"
+#line 12187 "configure"
 #include "confdefs.h"
 /* $cf_c_opts $cf_t_opts */
 $CHECK_DECL_HDRS
@@ -11903,7 +12191,7 @@ int main() {
 char *x = (char *)tgoto("")
 ; return 0; }
 EOF
-if { (eval echo configure:11907: \"$ac_link\") 1>&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 <<EOF
-#line 11920 "configure"
+#line 12208 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -11924,7 +12212,7 @@ int main() {
 char *x = (char *)tgoto("",0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:11928: \"$ac_link\") 1>&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 <<EOF
-#line 12023 "configure"
+#line 12311 "configure"
 #include "confdefs.h"
 $CHECK_DECL_HDRS
 int main() {
@@ -12028,7 +12316,7 @@ extern $Q OutChar($R);
 	tputs("", 1, OutChar)
 ; return 0; }
 EOF
-if { (eval echo configure:12032: \"$ac_compile\") 1>&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 <<EOF
-#line 12087 "configure"
+#line 12375 "configure"
 #include "confdefs.h"
 
 int main() {
 extern char PC; PC = 0
 ; return 0; }
 EOF
-if { (eval echo configure:12094: \"$ac_link\") 1>&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 <<EOF
-#line 12119 "configure"
+#line 12407 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -12128,7 +12416,7 @@ int main() {
 long x = (long) errno
 ; return 0; }
 EOF
-if { (eval echo configure:12132: \"$ac_compile\") 1>&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 <<EOF
-#line 12166 "configure"
+#line 12454 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -12172,7 +12460,7 @@ int main() {
 errno = 2
 ; return 0; }
 EOF
-if { (eval echo configure:12176: \"$ac_link\") 1>&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 <<EOF
-#line 12213 "configure"
+#line 12501 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12232,7 +12520,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12236: \"$ac_link\") 1>&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 <<EOF
-#line 12269 "configure"
+#line 12557 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -12278,7 +12566,7 @@ int main() {
 long x = (long) sys_nerr
 ; return 0; }
 EOF
-if { (eval echo configure:12282: \"$ac_compile\") 1>&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 <<EOF
-#line 12316 "configure"
+#line 12604 "configure"
 #include "confdefs.h"
 
 #undef sys_nerr
@@ -12322,7 +12610,7 @@ int main() {
 sys_nerr = 2
 ; return 0; }
 EOF
-if { (eval echo configure:12326: \"$ac_link\") 1>&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 <<EOF
-#line 12361 "configure"
+#line 12649 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -12370,7 +12658,7 @@ int main() {
 long x = (long) sys_errlist
 ; return 0; }
 EOF
-if { (eval echo configure:12374: \"$ac_compile\") 1>&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 <<EOF
-#line 12408 "configure"
+#line 12696 "configure"
 #include "confdefs.h"
 
 #undef sys_errlist
@@ -12414,7 +12702,7 @@ int main() {
 sys_errlist = 2
 ; return 0; }
 EOF
-if { (eval echo configure:12418: \"$ac_link\") 1>&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 <<EOF
-#line 12519 "configure"
+#line 12807 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12538,7 +12826,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12542: \"$ac_link\") 1>&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 <<EOF
-#line 12573 "configure"
+#line 12861 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char flock(); below.  */
@@ -12592,7 +12880,7 @@ flock();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12596: \"$ac_link\") 1>&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 <<EOF
-#line 12626 "configure"
+#line 12914 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12633,7 +12921,7 @@ int main() {
 flock()
 ; return 0; }
 EOF
-if { (eval echo configure:12637: \"$ac_link\") 1>&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 <<EOF
-#line 12671 "configure"
+#line 12959 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #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 <<EOF
-#line 12717 "configure"
+#line 13005 "configure"
 #include "confdefs.h"
 #include <libutf8.h>
 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 <<EOF
-#line 12779 "configure"
+#line 13067 "configure"
 #include "confdefs.h"
 
 #if HAVE_SYS_TIME_H
@@ -12787,7 +13075,7 @@ struct timezone *tz;
 gettimeofday(tv, tz);
 ; return 0; }
 EOF
-if { (eval echo configure:12791: \"$ac_compile\") 1>&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 <<EOF
-#line 12815 "configure"
+#line 13103 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -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 <<EOF
-#line 12861 "configure"
+#line 13149 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -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 <<EOF
-#line 12901 "configure"
+#line 13189 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 12937 "configure"
+#line 13225 "configure"
 #include "confdefs.h"
 
 #ifdef SVR4_ACTION
@@ -12951,7 +13239,7 @@ int main() {
     sigaction (SIGBUS,&sa,&osa);
 ; return 0; }
 EOF
-if { (eval echo configure:12955: \"$ac_link\") 1>&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 <<EOF
-#line 12986 "configure"
+#line 13274 "configure"
 #include "confdefs.h"
 
 int main()
@@ -12992,7 +13280,7 @@ int main()
 	exit(0);
 }
 EOF
-if { (eval echo configure:12996: \"$ac_link\") 1>&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 <<EOF
-#line 13023 "configure"
+#line 13311 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove(); below.  */
@@ -13042,7 +13330,7 @@ memmove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13046: \"$ac_link\") 1>&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 <<EOF
-#line 13070 "configure"
+#line 13358 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy(); below.  */
@@ -13089,7 +13377,7 @@ bcopy();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13093: \"$ac_link\") 1>&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 <<EOF
-#line 13118 "configure"
+#line 13406 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -13127,7 +13415,7 @@ int main() {
 }
 		
 EOF
-if { (eval echo configure:13131: \"$ac_link\") 1>&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
-#line 13171 "configure"
+#line 13459 "configure"
 #include "confdefs.h"
 #include <time.h>
 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 <<EOF
-#line 13199 "configure"
+#line 13487 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #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 <<EOF
-#line 13239 "configure"
+#line 13527 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 /* 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 <<EOF
-#line 13296 "configure"
+#line 13584 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13315,7 +13603,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13319: \"$ac_link\") 1>&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 <<EOF
-#line 13352 "configure"
+#line 13640 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -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 <<EOF
-#line 13386 "configure"
+#line 13674 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_IOCTL_H
@@ -13404,7 +13692,7 @@ int main() {
 	(void) tcgetattr (0, &save_tty)
 ; return 0; }
 EOF
-if { (eval echo configure:13408: \"$ac_link\") 1>&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 <<EOF
-#line 13445 "configure"
+#line 13733 "configure"
 #include "confdefs.h"
 
 #include <pwd.h>
@@ -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 <<EOF
-#line 13482 "configure"
+#line 13770 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -13498,7 +13786,7 @@ int main() {
 	long bar = foo.tm_gmtoff
 ; return 0; }
 EOF
-if { (eval echo configure:13502: \"$ac_compile\") 1>&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
-#line 13575 "configure"
+#line 13863 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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
-#line 13622 "configure"
+#line 13910 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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
-#line 13662 "configure"
+#line 13950 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 13714 "configure"
+#line 14002 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
@@ -13721,7 +14009,7 @@ int x;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:13725: \"$ac_link\") 1>&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 <<EOF
-#line 13736 "configure"
+#line 14024 "configure"
 #include "confdefs.h"
 $cf_wait_headers
 int main() {
@@ -13747,7 +14035,7 @@ union wait x;
 	
 ; return 0; }
 EOF
-if { (eval echo configure:13751: \"$ac_link\") 1>&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 <<EOF
-#line 13785 "configure"
+#line 14073 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -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 <<EOF
-#line 13829 "configure"
+#line 14117 "configure"
 #include "confdefs.h"
 int main() { exit(system("exit 23") != (23 << 8)); }
 EOF
-if { (eval echo configure:13833: \"$ac_link\") 1>&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 <<EOF
-#line 13882 "configure"
+#line 14170 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 13927 "configure"
+#line 14215 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -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 <<EOF
-#line 14005 "configure"
+#line 14293 "configure"
 #include "confdefs.h"
 
 #define NEW_DFL	((RETSIGTYPE (*)($cf_test))0)
@@ -14028,7 +14316,7 @@ int main()
 	exit(0);
 }
 EOF
-if { (eval echo configure:14032: \"$ac_link\") 1>&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 <<EOF
-#line 14064 "configure"
+#line 14352 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -14072,7 +14360,7 @@ extern int compare(const void *, const v
 	 qsort(foo, sizeof(foo)/sizeof(*foo), sizeof(*foo), compare)
 ; return 0; }
 EOF
-if { (eval echo configure:14076: \"$ac_compile\") 1>&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 <<EOF
-#line 14113 "configure"
+#line 14401 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -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 <<EOF
-#line 14212 "configure"
+#line 14500 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14222,7 +14510,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14226: \"$ac_link\") 1>&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 <<EOF
-#line 14234 "configure"
+#line 14522 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14240,7 +14528,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14244: \"$ac_compile\") 1>&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 <<EOF
-#line 14304 "configure"
+#line 14592 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14314,7 +14602,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14318: \"$ac_link\") 1>&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 <<EOF
-#line 14326 "configure"
+#line 14614 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14332,7 +14620,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14336: \"$ac_compile\") 1>&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 <<EOF
-#line 14394 "configure"
+#line 14682 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14404,7 +14692,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14408: \"$ac_link\") 1>&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 <<EOF
-#line 14416 "configure"
+#line 14704 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14422,7 +14710,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14426: \"$ac_compile\") 1>&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 <<EOF
-#line 14536 "configure"
+#line 14824 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14546,7 +14834,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14550: \"$ac_link\") 1>&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 <<EOF
-#line 14558 "configure"
+#line 14846 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14564,7 +14852,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14568: \"$ac_compile\") 1>&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 <<EOF
-#line 14623 "configure"
+#line 14911 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14633,7 +14921,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14637: \"$ac_link\") 1>&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 <<EOF
-#line 14645 "configure"
+#line 14933 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14651,7 +14939,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14655: \"$ac_compile\") 1>&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 <<EOF
-#line 14713 "configure"
+#line 15001 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14723,7 +15011,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14727: \"$ac_link\") 1>&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 <<EOF
-#line 14735 "configure"
+#line 15023 "configure"
 #include "confdefs.h"
 
 #define DECL_${cf_1_up}
@@ -14741,7 +15029,7 @@ int main() {
 long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:14745: \"$ac_compile\") 1>&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 <<EOF
-#line 14794 "configure"
+#line 15082 "configure"
 #include "confdefs.h"
 
 $CHECK_DECL_HDRS
@@ -14815,7 +15103,7 @@ int main()
 	exit(0);	/* we cannot guarantee this is run interactively */
 }
 EOF
-if { (eval echo configure:14819: \"$ac_link\") 1>&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 <<EOF
-#line 14901 "configure"
+#line 15189 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 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 <<EOF
-#line 14934 "configure"
+#line 15222 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -14958,7 +15246,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:14962: \"$ac_link\") 1>&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 <<EOF
-#line 14999 "configure"
+#line 15287 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -15020,12 +15308,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&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 <<EOF
-#line 15029 "configure"
+#line 15317 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15048,7 +15336,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15052: \"$ac_link\") 1>&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 <<EOF
-#line 15087 "configure"
+#line 15375 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -15102,7 +15390,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:15106: \"$ac_link\") 1>&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
-#line 15136 "configure"
+#line 15424 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 15175 "configure"
+#line 15463 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15194,7 +15482,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15198: \"$ac_link\") 1>&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 <<EOF
-#line 15231 "configure"
+#line 15519 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -15367,7 +15655,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:15371: \"$ac_link\") 1>&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 <<EOF
-#line 15400 "configure"
+#line 15688 "configure"
 #include "confdefs.h"
 
 #include <features.h>
@@ -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
-#line 15467 "configure"
+#line 15755 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 15508 "configure"
+#line 15796 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15527,7 +15815,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15531: \"$ac_link\") 1>&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 <<EOF
-#line 15580 "configure"
+#line 15868 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -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 <<EOF
-#line 15602 "configure"
+#line 15890 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -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 <<EOF
-#line 15639 "configure"
+#line 15927 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -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 <<EOF
-#line 15692 "configure"
+#line 15980 "configure"
 #include "confdefs.h"
 #include <langinfo.h>
 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 <<EOF
-#line 15727 "configure"
+#line 16015 "configure"
 #include "confdefs.h"
 #include <locale.h>
 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
-#line 15805 "configure"
+#line 16094 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 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 <<EOF
-#line 15832 "configure"
+#line 16288 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 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 <<EOF
+#line 16314 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+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 <<EOF
-#line 15864 "configure"
+#line 16396 "configure"
 #include "confdefs.h"
 #include <libintl.h>
 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 <<EOF
-#line 15911 "configure"
+#line 16459 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15930,7 +16478,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15934: \"$ac_link\") 1>&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
-#line 16431 "configure"
+#line 16982 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 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 <<EOF
-#line 16525 "configure"
+#line 17076 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 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 <<EOF
-#line 16558 "configure"
+#line 17109 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -16582,7 +17133,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:16586: \"$ac_link\") 1>&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 <<EOF
-#line 16623 "configure"
+#line 17174 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -16644,12 +17195,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&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 <<EOF
-#line 16653 "configure"
+#line 17204 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16672,7 +17223,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16676: \"$ac_link\") 1>&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 <<EOF
-#line 16711 "configure"
+#line 17262 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -16726,7 +17277,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:16730: \"$ac_link\") 1>&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 <<EOF
-#line 16777 "configure"
+#line 17328 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -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 <<EOF
-#line 16817 "configure"
+#line 17368 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_ICONV_H
@@ -16830,7 +17381,7 @@ int main() {
 	exit(0);
 }
 EOF
-if { (eval echo configure:16834: \"$ac_link\") 1>&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 <<EOF
-#line 16880 "configure"
+#line 17431 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:16887: \"$ac_link\") 1>&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 <<EOF
-#line 16903 "configure"
+#line 17454 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:16910: \"$ac_link\") 1>&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 <<EOF
-#line 16950 "configure"
+#line 17501 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16957,7 +17508,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:16961: \"$ac_link\") 1>&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 <<EOF
-#line 16991 "configure"
+#line 17542 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16998,7 +17549,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:17002: \"$ac_link\") 1>&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 <<EOF
-#line 17036 "configure"
+#line 17587 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -17055,7 +17606,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17059: \"$ac_link\") 1>&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 <<EOF
-#line 17088 "configure"
+#line 17639 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17095,7 +17646,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:17099: \"$ac_link\") 1>&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 <<EOF
-#line 17134 "configure"
+#line 17685 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -17153,7 +17704,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17157: \"$ac_link\") 1>&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 <<EOF
-#line 17186 "configure"
+#line 17737 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17193,7 +17744,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:17197: \"$ac_link\") 1>&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 <<EOF
-#line 17226 "configure"
+#line 17777 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -17245,7 +17796,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17249: \"$ac_link\") 1>&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 <<EOF
-#line 17278 "configure"
+#line 17829 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17285,7 +17836,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:17289: \"$ac_link\") 1>&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 <<EOF
-#line 17318 "configure"
+#line 17869 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -17337,7 +17888,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17341: \"$ac_link\") 1>&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 <<EOF
-#line 17370 "configure"
+#line 17921 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17377,7 +17928,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:17381: \"$ac_link\") 1>&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 <<EOF
-#line 17422 "configure"
+#line 17973 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17429,7 +17980,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:17433: \"$ac_link\") 1>&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 <<EOF
-#line 17548 "configure"
+#line 18099 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
-#line 17579 "configure"
+#line 18130 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XOpenDisplay(); below.  */
@@ -17598,7 +18149,7 @@ XOpenDisplay();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17602: \"$ac_link\") 1>&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 <<EOF
-#line 17629 "configure"
+#line 18180 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17636,7 +18187,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:17640: \"$ac_link\") 1>&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 <<EOF
-#line 17669 "configure"
+#line 18220 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XtAppInitialize(); below.  */
@@ -17688,7 +18239,7 @@ XtAppInitialize();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17692: \"$ac_link\") 1>&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 <<EOF
-#line 17719 "configure"
+#line 18270 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17726,7 +18277,7 @@ int main() {
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:17730: \"$ac_link\") 1>&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 <<EOF
-#line 17827 "configure"
+#line 18378 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17834,7 +18385,7 @@ int main() {
 XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:17838: \"$ac_link\") 1>&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 <<EOF
-#line 17883 "configure"
+#line 18434 "configure"
 #include "confdefs.h"
 
 #include <X11/Intrinsic.h>
@@ -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 <<EOF
-#line 17948 "configure"
+#line 18499 "configure"
 #include "confdefs.h"
 
 int main() {
 $cf_test()
 ; return 0; }
 EOF
-if { (eval echo configure:17955: \"$ac_link\") 1>&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 <<EOF
-#line 18075 "configure"
+#line 18626 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 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 <<EOF
-#line 18108 "configure"
+#line 18659 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -18115,7 +18666,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:18119: \"$ac_link\") 1>&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 <<EOF
-#line 18147 "configure"
+#line 18698 "configure"
 #include "confdefs.h"
 
 #include <xcurses.h>
@@ -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 <dickey@invisible-island.net>
 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 <dickey@invisible-island.net>
+dnl Copyright (c) 1995-2007 Thomas E. Dickey <dickey@invisible-island.net>
 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 <naddy@mips.inka.de>
+      BUG. assumed that wchar_t and wint_t are of the same size  
+      FIX. tcurses.c    
+
+ 017) Antonio Querubin <tony@lava.net>
+      BUG. missplaced ||
+      FIX. nntplib.c
+
+U006) Thomas E. Dickey <dickey@invisible-island.net>
+      ADD. update configure macros
+      FIX. aclocal.m4
+
+U005) Dirk Nimmich <nimmich@muenster.de>
+      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 <michael@vorlon.ping.de>
+      BUG. 'l' from the pager doesn't reposition cursor to last viewed
+           article
+      FIX. thread.c
+
+ 014) Urs Janssen <urs@tin.org>
+      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 <urs@tin.org>
+      ADD. minor manpage tweaking
+      FIX. tin.1, tin.5
+
+ 012) Peter Breitenlohner <peb@mppmu.mpg.de>
+      BUG. build problem with VPATH
+      FIX. Makefile.in
+
+ 011) Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
+      ADD. updated russian translation
+      FIX. ru.po
+
+ 010) Urs Janssen <urs@tin.org>
+      BUG. possible division by zero in thread_by_percentage()
+      FIX. art.c
+
+U004) Urs Janssen <urs@tin.org>
+      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 <michael@vorlon.ping.de>
+      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 <urs@tin.org>
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 <urs@tin.org>]
-
 o  a wrong usename in ~/.newsauth can't be corrected in the first
    pass
    [20050816 Urs Janssen <urs@tin.org>]
 
-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 <urs@tin.org>]
-
 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 <urs@tin.org>]
 
-o  fast/endless reconecction loop after a "200\n\r400\n\r" greeting,
-   see
-   <nntp://news.tin.org/Pine.LNX.4.61.0411190338000.24950@avenger.apcoh.org>
-
-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 <urs@tin.org>]
-
-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 <urs@tin.org>]
-
 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 <urs@tin.org>]
-
 o  piping/printing articles grabbles screen
    [20030501 Urs Janssen <urs@tin.org>]
 
@@ -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 <urs@tin.org>]
 
@@ -84,13 +53,6 @@ o  add version number to other config-fi
    ISO-8859-x vs. unicode)
    [Urs Janssen <urs@tin.org>]
 
-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 <TAB> in the pager?
-
 o  rewrite code to use INEWS_PATH instead of INEWSDIR
    [20021007 Urs Janssen <urs@tin.org>
 
@@ -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 <urs@tin.org>]
 
@@ -177,7 +135,7 @@ o  allow bold, underline, italic, ... as
    [20030218 Serge Matveev <sm@cl.spb.ru>]
 
 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 <urs@tin.org>]
 
 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 <urs@tin.org>]
 
-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 <urs@tin.org>]
-
 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:
     <http://www.dwheeler.com/flawfinder/> 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 <TAB> 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 <urs@tin.org>]
+
 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 <urs@tin.org>]
 
 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<SPACE>\fP)
+Page Down	\fBPgDn\fP	\fBPageDown\fP (\fB^D\fP or \fB^F\fP or \fB<SPACE>\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 '<TAB>'
-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<TAB>\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)
-<SPACE> normally acts as a Page Down 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 (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<TAB>\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 <urs@tin.org>
 .BR mmdf (5),
 .BR newsoverview (5),
 .BR tin (5),
-.BR RFC977 ,
 .BR RFC1036 ,
 .BR RFC1524 ,
 .BR RFC2045 ,
@@ -3312,5 +3324,6 @@ Urs Janssen <urs@tin.org>
 .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<TAB>\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<TAB>\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 <dickey@invisible-island.net>
+ * Copyright (c) 1995-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <urs@tin.org>
+ * Copyright (c) 1997-2007 Urs Janssen <urs@tin.org>
  * 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 <urs@tin.org>
+ * Copyright (c) 1997-2007 Urs Janssen <urs@tin.org>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1997-2007 Iain Lea <iain@bricbrac.de>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 1999-2007 Jason Faultless <jason@altarstone.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1997-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <doeblitz@gmx.de>
  *  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 <doeblitz@gmx.de>
+ * Copyright (c) 1999-2007 Ralf Doeblitz <doeblitz@gmx.de>
  * 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 <urs@tin.org>
  *  Created   :
- *  Updated   : 2005-10-19
+ *  Updated   : 2006-10-01
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2007 Urs Janssen <urs@tin.org>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 2000-2007 Jason Faultless <jason@altarstone.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1993-2007 Iain Lea <iain@bricbrac.de>
  * 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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1997-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <jason@altarstone.com>
  *  Created   : 1999-04-13
- *  Updated   : 2004-06-20
+ *  Updated   : 2006-06-28
  *  Notes     :
  *
- * Copyright (c) 1999-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1999-2007 Jason Faultless <jason@altarstone.com>
  * 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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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<keylen; i++) {
-        k_ipad[i] ^= key[i];
-        k_opad[i] ^= key[i];
-    }
-
-        /* perform inner RIPEMD-160 */
-
-    RMD160Init(&context);           /* init context for 1st pass */
-    RMD160Update(&context, k_ipad, 64);  /* start with inner pad */
-    RMD160Update(&context, input, len); /* then text of datagram */
-    RMD160Final(digest, &context);         /* finish up 1st pass */
-
-        /* perform outer RIPEMD-160 */
-    RMD160Init(&context);           /* init context for 2nd pass */
-    RMD160Update(&context, k_opad, 64);  /* start with outer pad */
-    /* then results of 1st hash */
-    RMD160Update(&context, digest, RMD160_DIGESTSIZE);
-    RMD160Final(digest, &context);         /* finish up 2nd pass */
-
-    memset(k_ipad, 0x00, sizeof(k_ipad));
-    memset(k_opad, 0x00, sizeof(k_opad));
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Kapp                         Informational                      [Page 6]
-
-RFC 2286       Test Cases: HMAC-RIPEMD160, HMAC-RIPEMD128  February 1998
-
-
-Full Copyright Statement
-
-   Copyright (C) The Internet Society (1998).  All Rights Reserved.
-
-   This document and translations of it may be copied and furnished to
-   others, and derivative works that comment on or otherwise explain it
-   or assist in its implementation may be prepared, copied, published
-   and distributed, in whole or in part, without restriction of any
-   kind, provided that the above copyright notice and this paragraph are
-   included on all such copies and derivative works.  However, this
-   document itself may not be modified in any way, such as by removing
-   the copyright notice or references to the Internet Society or other
-   Internet organizations, except as needed for the purpose of
-   developing Internet standards in which case the procedures for
-   copyrights defined in the Internet Standards process must be
-   followed, or as required to translate it into languages other than
-   English.
-
-   The limited permissions granted above are perpetual and will not be
-   revoked by the Internet Society or its successors or assigns.
-
-   This document and the information contained herein is provided on an
-   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Kapp                         Informational                      [Page 7]
-
-
diff -Nurp tin-1.9.1/pcre/AUTHORS tin-1.9.2/pcre/AUTHORS
--- tin-1.9.1/pcre/AUTHORS	2006-02-15 19:44:38.000000000 +0100
+++ tin-1.9.2/pcre/AUTHORS	2006-12-19 10:31:35.000000000 +0100
@@ -8,7 +8,7 @@ Email domain:     cam.ac.uk
 University of Cambridge Computing Service,
 Cambridge, England. Phone: +44 1223 334714.
 
-Copyright (c) 1997-2005 University of Cambridge
+Copyright (c) 1997-2006 University of Cambridge
 All rights reserved
 
 
@@ -17,7 +17,7 @@ THE C++ WRAPPER LIBRARY
 
 Written by:       Google Inc.
 
-Copyright (c) 2005 Google Inc
+Copyright (c) 2006 Google Inc
 All rights reserved
 
 ####
diff -Nurp tin-1.9.1/pcre/COPYING tin-1.9.2/pcre/COPYING
--- tin-1.9.1/pcre/COPYING	2006-02-15 19:44:38.000000000 +0100
+++ tin-1.9.2/pcre/COPYING	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.
 
@@ -22,7 +22,7 @@ Email domain:     cam.ac.uk
 University of Cambridge Computing Service,
 Cambridge, England. Phone: +44 1223 334714.
 
-Copyright (c) 1997-2005 University of Cambridge
+Copyright (c) 1997-2006 University of Cambridge
 All rights reserved.
 
 
@@ -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/ChangeLog tin-1.9.2/pcre/ChangeLog
--- tin-1.9.1/pcre/ChangeLog	2006-02-06 13:17:16.000000000 +0100
+++ tin-1.9.2/pcre/ChangeLog	2006-12-19 10:31:35.000000000 +0100
@@ -1,6 +1,448 @@
 ChangeLog for PCRE
 ------------------
 
+Version 7.0 19-Dec-06
+---------------------
+
+ 1. Fixed a signed/unsigned compiler warning in pcre_compile.c, shown up by
+    moving to gcc 4.1.1.
+
+ 2. The -S option for pcretest uses setrlimit(); I had omitted to #include
+    sys/time.h, which is documented as needed for this function. It doesn't
+    seem to matter on Linux, but it showed up on some releases of OS X.
+
+ 3. It seems that there are systems where bytes whose values are greater than
+    127 match isprint() in the "C" locale. The "C" locale should be the
+    default when a C program starts up. In most systems, only ASCII printing
+    characters match isprint(). This difference caused the output from pcretest
+    to vary, making some of the tests fail. I have changed pcretest so that:
+
+    (a) When it is outputting text in the compiled version of a pattern, bytes
+        other than 32-126 are always shown as hex escapes.
+
+    (b) When it is outputting text that is a matched part of a subject string,
+        it does the same, unless a different locale has been set for the match
+        (using the /L modifier). In this case, it uses isprint() to decide.
+
+ 4. Fixed a major bug that caused incorrect computation of the amount of memory
+    required for a compiled pattern when options that changed within the
+    pattern affected the logic of the preliminary scan that determines the
+    length. The relevant options are -x, and -i in UTF-8 mode. The result was
+    that the computed length was too small. The symptoms of this bug were
+    either the PCRE error "internal error: code overflow" from pcre_compile(),
+    or a glibc crash with a message such as "pcretest: free(): invalid next
+    size (fast)". Examples of patterns that provoked this bug (shown in
+    pcretest format) are:
+
+      /(?-x: )/x
+      /(?x)(?-x: \s*#\s*)/
+      /((?i)[\x{c0}])/8
+      /(?i:[\x{c0}])/8
+
+    HOWEVER: Change 17 below makes this fix obsolete as the memory computation
+    is now done differently.
+
+ 5. Applied patches from Google to: (a) add a QuoteMeta function to the C++
+    wrapper classes; (b) implement a new function in the C++ scanner that is
+    more efficient than the old way of doing things because it avoids levels of
+    recursion in the regex matching; (c) add a paragraph to the documentation
+    for the FullMatch() function.
+
+ 6. The escape sequence \n was being treated as whatever was defined as
+    "newline". Not only was this contrary to the documentation, which states
+    that \n is character 10 (hex 0A), but it also went horribly wrong when
+    "newline" was defined as CRLF. This has been fixed.
+
+ 7. In pcre_dfa_exec.c the value of an unsigned integer (the variable called c)
+    was being set to -1 for the "end of line" case (supposedly a value that no
+    character can have). Though this value is never used (the check for end of
+    line is "zero bytes in current character"), it caused compiler complaints.
+    I've changed it to 0xffffffff.
+
+ 8. In pcre_version.c, the version string was being built by a sequence of
+    C macros that, in the event of PCRE_PRERELEASE being defined as an empty
+    string (as it is for production releases) called a macro with an empty
+    argument. The C standard says the result of this is undefined. The gcc
+    compiler treats it as an empty string (which was what was wanted) but it is
+    reported that Visual C gives an error. The source has been hacked around to
+    avoid this problem.
+
+ 9. On the advice of a Windows user, included <io.h> and <fcntl.h> 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 (?<name>...) or (?'name'...) as well
+        as (?P<name>...). 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<name> 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
+        (?(<name>) 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<number>   in a data line sets the "match limit" value
+    \Q<number>   in a data line sets the "match recursion limt" value
+    -S <number>  sets the stack size, where <number> 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 <a href="pcre.html#utf8support">
+.\" </a>
+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 <a href="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre">
+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 <a name="digitsafterbackslash"></a>
+.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 <a href="#backreferences">
+.\" </a>
+later,
+.\"
+following the discussion of
+.\" HTML <a href="#subpattern">
 .\" </a>
-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 <a href="#uniextseq">
+.\" </a>
+(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 <a href="#backreferences">
+.\" </a>
+later,
+.\"
+following the discussion of
+.\" HTML <a href="#subpattern">
+.\" </a>
+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 <a href="pcreapi.html#localesupport">
+.\" </a>
+"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 <a href="#atomicgroup">
+.\" </a>
+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 <a name="uniextseq"></a>
+.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 <a href="#atomicgroup">
+.\" </a>
+(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 <a name="smallassertions"></a>
+.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 <a href="#bigassertions">
+.\" </a>
+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 <a href="#characterclass">
+.\" </a>
+(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 <a href="#lookbehind">
+.\" </a>
+(described below),
+.\"
+because in UTF-8 mode this would make it impossible to calculate the length of
+the lookbehind.
+.
+.
+.\" HTML <a name="characterclass"></a>
+.SH "SQUARE BRACKETS AND CHARACTER CLASSES"
+.rs
 .sp
-.\" HTML <a name="utf8support"></a>
+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 <a href="#subpattern">
+.\" </a>
+(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 <a name="subpattern"></a>
+.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: (?<name>...) or
+(?'name'...) as in Perl, or (?P<name>...) as in Python. References to capturing
+parentheses from other parts of the pattern, such as
+.\" HTML <a href="#backreferences">
+.\" </a>
+backreferences,
+.\"
+.\" HTML <a href="#recursion">
+.\" </a>
+recursion,
+.\"
+and
+.\" HTML <a href="#conditions">
+.\" </a>
+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
+  (?<DN>Mon|Fri|Sun)(?:day)?|
+  (?<DN>Tue)(?:sday)?|
+  (?<DN>Wed)(?:nesday)?|
+  (?<DN>Thu)(?:rsday)?|
+  (?<DN>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 <a name="atomicgroup"></a>
+.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 <a name="backreferences"></a>
+.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 <a href="#digitsafterbackslash">
+.\" </a>
+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 <a href="#subpatternsassubroutines">
+.\" </a>
+"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<name> or \ek'name'
+or the Python syntax (?P=name). We could rewrite the above example in either of
+the following ways:
+.sp
+  (?<p1>(?i)rah)\es+\ek<p1>
+  (?P<p1>(?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 <a href="#comments">
+.\" </a>
+"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 <a name="bigassertions"></a>
+.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 <a href="#smallassertions">
+.\" </a>
+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 <a name="lookbehind"></a>
+.SS "Lookbehind assertions"
+.rs
+.sp
+Lookbehind assertions start with (?<= for positive assertions and (?<! for
+negative assertions. For example,
+.sp
+  (?<!foo)bar
 .sp
+does find an occurrence of "bar" that is not preceded by "foo". The contents of
+a lookbehind assertion are restricted such that all the strings it matches must
+have a fixed length. However, if there are several top-level alternatives, they
+do not all have to have the same fixed length. Thus
+.sp
+  (?<=bullock|donkey)
+.sp
+is permitted, but
+.sp
+  (?<!dogs?|cats?)
+.sp
+causes an error at compile time. Branches that match different length strings
+are permitted only at the top level of a lookbehind assertion. This is an
+extension compared with Perl (at least for 5.8), which requires all branches to
+match the same length of string. An assertion such as
+.sp
+  (?<=ab(c|de))
+.sp
+is not permitted, because its single top-level branch can match two different
+lengths, but it is acceptable if rewritten to use two top-level branches:
+.sp
+  (?<=abc|abde)
+.sp
+The implementation of lookbehind assertions is, for each alternative, to
+temporarily move the current position back by the fixed length and then try to
+match. If there are insufficient characters before the current position, the
+assertion fails.
+.P
+PCRE does not allow the \eC escape (which matches a single byte in UTF-8 mode)
+to appear in lookbehind assertions, because it makes it impossible to calculate
+the length of the lookbehind. The \eX and \eR escapes, which can match
+different numbers of bytes, are also not permitted.
+.P
+Possessive quantifiers can be used in conjunction with lookbehind assertions to
+specify efficient matching at the end of the subject string. Consider a simple
+pattern such as
+.sp
+  abcd$
+.sp
+when applied to a long string that does not match. Because matching proceeds
+from left to right, PCRE will look for each "a" in the subject and then see if
+what follows matches the rest of the pattern. If the pattern is specified as
+.sp
+  ^.*abcd$
+.sp
+the initial .* matches the entire string at first, but when this fails (because
+there is no following "a"), it backtracks to match all but the last character,
+then all but the last two characters, and so on. Once again the search for "a"
+covers the entire string, from right to left, so we are no better off. However,
+if the pattern is written as
+.sp
+  ^.*+(?<=abcd)
+.sp
+there can be no backtracking for the .*+ item; it can match only the entire
+string. The subsequent lookbehind assertion does a single test on the last four
+characters. If it fails, the match fails immediately. For long strings, this
+approach makes a significant difference to the processing time.
+.
+.
+.SS "Using multiple assertions"
+.rs
+.sp
+Several assertions (of any sort) may occur in succession. For example,
+.sp
+  (?<=\ed{3})(?<!999)foo
+.sp
+matches "foo" preceded by three digits that are not "999". Notice that each of
+the assertions is applied independently at the same point in the subject
+string. First there is a check that the previous three characters are all
+digits, and then there is a check that the same three characters are not "999".
+This pattern does \fInot\fP match "foo" preceded by six characters, the first
+of which are digits and the last three of which are not "999". For example, it
+doesn't match "123abcfoo". A pattern to do that is
+.sp
+  (?<=\ed{3}...)(?<!999)foo
+.sp
+This time the first assertion looks at the preceding six characters, checking
+that the first three are digits, and then the second assertion checks that the
+preceding three characters are not "999".
+.P
+Assertions can be nested in any combination. For example,
+.sp
+  (?<=(?<!foo)bar)baz
+.sp
+matches an occurrence of "baz" that is preceded by "bar" which in turn is not
+preceded by "foo", while
+.sp
+  (?<=\ed{3}(?!999)...)foo
+.sp
+is another pattern that matches "foo" preceded by three digits and any three
+characters that are not "999".
+.
+.
+.\" HTML <a name="conditions"></a>
+.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 (?(<name>)...) 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
+  (?<OPEN> \e( )?    [^()]+    (?(<OPEN>) \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) (?<byte> 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 <a name="comments"></a>
+.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 <a name="recursion"></a>
+.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
+  (?<pn> \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 <a name="subpatternsassubroutines"></a>
+.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 <a name="uniextseq"></a>
@@ -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 (?<! and (?<= from (?<name> */
+
+  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<digits> 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 (?(<name>) 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 (?(<name>) 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 (?(<name>... 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<name> 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 <locale.h>
 #include <errno.h>
 
+
+/* 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 <io.h>                /* For _setmode() */
+#include <fcntl.h>             /* For _O_BINARY */
+#define INPUT_MODE   "r"
+#define OUTPUT_MODE  "wb"
+
+#else
+#include <sys/time.h>          /* These two includes are needed */
+#include <sys/resource.h>      /* 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 <xxx> 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] [<input> [<output>]]\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 <n>   set size of offsets vector to <n>\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 <n>   set stack size to <n> megabytes\n");
+printf("  -s       output store (memory) used information\n"
+       "  -t       time compilation and execution\n");
+printf("  -t <n>   time compilation and execution, repeating <n> times\n");
+printf("  -tm      time execution (matching) only\n");
+printf("  -tm <n>  time execution (matching) only, repeating <n> 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 <n>] [-p] [-s] [-t] [<input> [<output>]]\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 <n> set size of offsets vector to <n>\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
 
+/(?<![^f]oo)(bar)/
+    foobarX 
+    ** Failers 
+    boobarX
+
+/(?<![^f])X/
+    offX
+    ** Failers
+    onyX  
+
+/(?<=[^f])X/
+    onyX
+    ** Failers
+    offX 
+
+/^/mg
+    a\nb\nc\n
+    \ 
+    
+/(?<=C\n)^/mg
+    A\nC\nC\n 
+
+/(?:(?(1)a|b)(X))+/
+    bXaX
+
+/(?:(?(1)\1a|b)(X|Y))+/
+    bXXaYYaY
+    bXYaXXaX  
+
+/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
+    bXXaYYaY
+
+/[[,abc,]+]/
+    abc]
+    a,b]
+    [a,b,c]  
+
+/(?-x: )/x
+    A\x20B
+    
+"(?x)(?-x: \s*#\s*)"
+    A # B
+    ** Failers
+    #  
+
+"(?x-is)(?:(?-ixs) \s*#\s*) include"
+    A #include
+    ** Failers
+    A#include  
+    A #Include
+
+/a*b*\w/
+    aaabbbb
+    aaaa
+    a
+
+/a*b?\w/
+    aaabbbb
+    aaaa
+    a
+
+/a*b{0,4}\w/
+    aaabbbb
+    aaaa
+    a
+
+/a*b{0,}\w/
+    aaabbbb
+    aaaa
+    a
+    
+/a*\d*\w/
+    0a
+    a 
+    
+/a*b *\w/x
+    a 
+
+/a*b#comment
+  *\w/x
+    a 
+
+/a* b *\w/x
+    a 
+
+/^\w+=.*(\\\n.*)*/
+    abc=xyz\\\npqr
+
+/(?=(\w+))\1:/
+    abcd:
+
+/^(?=(\w+))\1:/
+    abcd:
+
+/^\Eabc/
+    abc
+    
+/^[\Eabc]/
+    a
+    ** Failers 
+    E 
+    
+/^[a-\Ec]/
+    b
+    ** Failers
+    -
+    E    
+
+/^[a\E\E-\Ec]/
+    b
+    ** Failers
+    -
+    E    
+
+/^[\E\Qa\E-\Qz\E]+/
+    b
+    ** Failers
+    -  
+    
+/^[a\Q]bc\E]/
+    a
+    ]
+    c
+    
+/^[a-\Q\E]/
+    a
+    -     
+
+/^(a()*)*/
+    aaaa
+
+/^(?:a(?:(?:))*)*/
+    aaaa
+
+/^(a()+)+/
+    aaaa
+
+/^(?:a(?:(?:))+)+/
+    aaaa
+
+/(a){0,3}(?(1)b|(c|))*D/
+    abbD
+    ccccD
+    D  
+
+/(a|)*\d/
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
+
+/(?>a|)*\d/
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
+
+/(?:a|)*\d/
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
+
+/\Z/g
+  abc\n
+  
+/^(?s)(?>.*)(?<!\n)/
+  abc
+  abc\n  
+
+/^(?![^\n]*\n\z)/
+  abc
+  abc\n 
+  
+/\z(?<!\n)/
+  abc
+  abc\n  
+
 / End of testinput1 /
diff -Nurp tin-1.9.1/pcre/testdata/testinput2 tin-1.9.2/pcre/testdata/testinput2
--- tin-1.9.1/pcre/testdata/testinput2	2006-02-06 13:17:16.000000000 +0100
+++ tin-1.9.2/pcre/testdata/testinput2	2006-12-19 10:31:35.000000000 +0100
@@ -1,6 +1,6 @@
-/(a)b|/
+/(a)b|/I
 
-/abc/
+/abc/I
     abc
     defabc
     \Aabc
@@ -8,29 +8,29 @@
     \Adefabc
     ABC
 
-/^abc/
+/^abc/I
     abc
     \Aabc
     *** Failers
     defabc
     \Adefabc
 
-/a+bc/
+/a+bc/I
 
-/a*bc/
+/a*bc/I
 
-/a{3}bc/
+/a{3}bc/I
 
-/(abc|a+z)/
+/(abc|a+z)/I
 
-/^abc$/
+/^abc$/I
     abc
     *** Failers
     def\nabc
 
-/ab\gdef/X
+/ab\hdef/X
 
-/(?X)ab\gdef/X
+/(?X)ab\hdef/X
 
 /x{5,4}/
 
@@ -50,33 +50,33 @@
 
 /(?z)abc/
 
-/.*b/
+/.*b/I
 
-/.*?b/
+/.*?b/I
 
-/cat|dog|elephant/
+/cat|dog|elephant/I
     this sentence eventually mentions a cat
     this sentences rambles on and on for a while and then reaches elephant
 
-/cat|dog|elephant/S
+/cat|dog|elephant/IS
     this sentence eventually mentions a cat
     this sentences rambles on and on for a while and then reaches elephant
 
-/cat|dog|elephant/iS
+/cat|dog|elephant/IiS
     this sentence eventually mentions a CAT cat
     this sentences rambles on and on for a while to elephant ElePhant
 
-/a|[bcd]/S
+/a|[bcd]/IS
 
-/(a|[^\dZ])/S
+/(a|[^\dZ])/IS
 
-/(a|b)*[\s]/S
+/(a|b)*[\s]/IS
 
 /(ab\2)/
 
 /{4,5}abc/
 
-/(a)(b)(c)\2/
+/(a)(b)(c)\2/I
     abcb
     \O0abcb
     \O3abcb
@@ -84,7 +84,7 @@
     \O9abcb
     \O12abcb 
 
-/(a)bc|(a)(b)\2/
+/(a)bc|(a)(b)\2/I
     abc
     \O0abc
     \O3abc
@@ -96,7 +96,7 @@
     \O9aba
     \O12aba
 
-/abc$/E
+/abc$/IE
     abc
     *** Failers
     abc\n
@@ -104,88 +104,88 @@
 
 /(a)(b)(c)(d)(e)\6/
 
-/the quick brown fox/
+/the quick brown fox/I
     the quick brown fox
     this is a line with the quick brown fox
 
-/the quick brown fox/A
+/the quick brown fox/IA
     the quick brown fox
     *** Failers
     this is a line with the quick brown fox
 
 /ab(?z)cd/
 
-/^abc|def/
+/^abc|def/I
     abcdef
     abcdef\B
 
-/.*((abc)$|(def))/
+/.*((abc)$|(def))/I
     defabc
     \Zdefabc
 
-/abc/P
+/abc/IP
     abc
     *** Failers
     
-/^abc|def/P
+/^abc|def/IP
     abcdef
     abcdef\B
 
-/.*((abc)$|(def))/P
+/.*((abc)$|(def))/IP
     defabc
     \Zdefabc
   
-/the quick brown fox/P
+/the quick brown fox/IP
     the quick brown fox
     *** Failers 
     The Quick Brown Fox 
 
-/the quick brown fox/Pi
+/the quick brown fox/IPi
     the quick brown fox
     The Quick Brown Fox 
 
-/abc.def/P
+/abc.def/IP
     *** Failers
     abc\ndef
     
-/abc$/P
+/abc$/IP
     abc
     abc\n 
 
-/(abc)\2/P
+/(abc)\2/IP
 
-/(abc\1)/P
+/(abc\1)/IP
     abc
 
 /)/
 
 /a[]b/
 
-/[^aeiou ]{3,}/
+/[^aeiou ]{3,}/I
     co-processors, and for 
     
-/<.*>/
+/<.*>/I
     abc<def>ghi<klm>nop
 
-/<.*?>/
+/<.*?>/I
     abc<def>ghi<klm>nop
 
-/<.*>/U
+/<.*>/IU
     abc<def>ghi<klm>nop
     
-/(?U)<.*>/
+/(?U)<.*>/I
     abc<def>ghi<klm>nop
 
-/<.*?>/U
+/<.*?>/IU
     abc<def>ghi<klm>nop
     
-/={3,}/U
+/={3,}/IU
     abc========def
     
-/(?U)={3,}?/
+/(?U)={3,}?/I
     abc========def
     
-/(?<!bar|cattle)foo/
+/(?<!bar|cattle)foo/I
     foo
     catfoo 
     *** Failers
@@ -198,25 +198,25 @@
 
 /(?<!(foo)a\1)bar/
 
-/(?i)abc/
+/(?i)abc/I
 
-/(a|(?m)a)/
+/(a|(?m)a)/I
 
-/(?i)^1234/
+/(?i)^1234/I
 
-/(^b|(?i)^d)/
+/(^b|(?i)^d)/I
 
-/(?s).*/
+/(?s).*/I
 
-/[abcd]/S
+/[abcd]/IS
 
-/(?i)[abcd]/S
+/(?i)[abcd]/IS
 
-/(?m)[xy]|(b|c)/S
+/(?m)[xy]|(b|c)/IS
 
-/(^a|^b)/m
+/(^a|^b)/Im
 
-/(?i)(^a|^b)/m
+/(?i)(^a|^b)/Im
 
 /(a)(?(1)a|b|c)/
 
@@ -224,62 +224,64 @@
 
 /(?(1a)/
 
+/(?(1a))/
+
 /(?(?i))/
 
 /(?(abc))/
 
 /(?(?<ab))/
 
-/((?s)blah)\s+\1/
+/((?s)blah)\s+\1/I
 
-/((?i)blah)\s+\1/
+/((?i)blah)\s+\1/I
 
-/((?i)b)/DS
+/((?i)b)/IDS
 
-/(a*b|(?i:c*(?-i)d))/S
+/(a*b|(?i:c*(?-i)d))/IS
 
-/a$/
+/a$/I
     a
     a\n
     *** Failers 
     \Za
     \Za\n   
 
-/a$/m
+/a$/Im
     a
     a\n
     \Za\n   
     *** Failers 
     \Za
     
-/\Aabc/m
+/\Aabc/Im
 
-/^abc/m 
+/^abc/Im 
 
-/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
   aaaaabbbbbcccccdef
 
-/(?<=foo)[ab]/S
+/(?<=foo)[ab]/IS
 
-/(?<!foo)(alpha|omega)/S
+/(?<!foo)(alpha|omega)/IS
 
-/(?!alphabet)[ab]/S
+/(?!alphabet)[ab]/IS
 
-/(?<=foo\n)^bar/m
+/(?<=foo\n)^bar/Im
     foo\nbarbar 
     ***Failers
     rhubarb 
     barbell
     abc\nbarton 
 
-/^(?<=foo\n)bar/m
+/^(?<=foo\n)bar/Im
     foo\nbarbar 
     ***Failers
     rhubarb 
     barbell
     abc\nbarton 
 
-/(?>^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  
 
-/(?<!(foo)a)bar/
+/(?<!(foo)a)bar/I
     bar
     foobbar 
     *** Failers
     fooabar  
 
-/This one is here because Perl 5.005_02 doesn't fail it/
+/This one is here because Perl 5.005_02 doesn't fail it/I
 
-/^(a)?(?(1)a|b)+$/
+/^(a)?(?(1)a|b)+$/I
     *** Failers
     a 
 
-/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/
+/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
 
-/^(a\1?){4}$/
+/^(a\1?){4}$/I
     aaaaaa
     
-/These are syntax tests from Perl 5.005/
+/These are syntax tests from Perl 5.005/I
 
 /a[b-a]/
 
@@ -362,23 +364,23 @@
 
 /(a)|\2/
 
-/a[b-a]/i
+/a[b-a]/Ii
 
-/a[]b/i
+/a[]b/Ii
 
-/a[/i
+/a[/Ii
 
-/*a/i
+/*a/Ii
 
-/(*)b/i
+/(*)b/Ii
 
-/abc)/i
+/abc)/Ii
 
-/(abc/i
+/(abc/Ii
 
-/a**/i
+/a**/Ii
 
-/)(/i
+/)(/Ii
 
 /:(?:/
 
@@ -410,175 +412,175 @@
 
 /abc/\i
 
-/(a)bc(d)/
+/(a)bc(d)/I
     abcd
     abcd\C2
     abcd\C5
      
-/(.{20})/
+/(.{20})/I
     abcdefghijklmnopqrstuvwxyz
     abcdefghijklmnopqrstuvwxyz\C1
     abcdefghijklmnopqrstuvwxyz\G1
      
-/(.{15})/
+/(.{15})/I
     abcdefghijklmnopqrstuvwxyz
     abcdefghijklmnopqrstuvwxyz\C1\G1
 
-/(.{16})/
+/(.{16})/I
     abcdefghijklmnopqrstuvwxyz
     abcdefghijklmnopqrstuvwxyz\C1\G1\L
     
-/^(a|(bc))de(f)/
+/^(a|(bc))de(f)/I
     adef\G1\G2\G3\G4\L 
     bcdef\G1\G2\G3\G4\L 
     adefghijk\C0 
     
-/^abc\00def/
+/^abc\00def/I
     abc\00def\L\C0 
     
 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
-)?)?)?)?)?)?)?)?)?otherword/M
+)?)?)?)?)?)?)?)?)?otherword/IM
 
-/.*X/D
+/.*X/ID
 
-/.*X/Ds
+/.*X/IDs
 
-/(.*X|^B)/D
+/(.*X|^B)/ID
 
-/(.*X|^B)/Ds
+/(.*X|^B)/IDs
     
-/(?s)(.*X|^B)/D
+/(?s)(.*X|^B)/ID
 
-/(?s:.*X|^B)/D
+/(?s:.*X|^B)/ID
 
-/\Biss\B/+
+/\Biss\B/I+
     Mississippi
 
-/\Biss\B/+P
+/\Biss\B/I+P
     Mississippi
 
-/iss/G+
+/iss/IG+
     Mississippi
 
-/\Biss\B/G+
+/\Biss\B/IG+
     Mississippi
 
-/\Biss\B/g+
+/\Biss\B/Ig+
     Mississippi
     *** Failers
     Mississippi\A
 
-/(?<=[Ms])iss/g+
+/(?<=[Ms])iss/Ig+
     Mississippi
 
-/(?<=[Ms])iss/G+
+/(?<=[Ms])iss/IG+
     Mississippi
 
-/^iss/g+
+/^iss/Ig+
     ississippi
     
-/.*iss/g+
+/.*iss/Ig+
     abciss\nxyzisspqr 
 
-/.i./+g
+/.i./I+g
     Mississippi
     Mississippi\A
     Missouri river
     Missouri river\A  
 
-/^.is/+g
+/^.is/I+g
     Mississippi
 
-/^ab\n/g+
+/^ab\n/Ig+
     ab\nab\ncd
 
-/^ab\n/mg+
+/^ab\n/Img+
     ab\nab\ncd
 
-/abc/
+/abc/I
 
-/abc|bac/
+/abc|bac/I
 
-/(abc|bac)/
+/(abc|bac)/I
 
-/(abc|(c|dc))/
+/(abc|(c|dc))/I
 
-/(abc|(d|de)c)/
+/(abc|(d|de)c)/I
 
-/a*/
+/a*/I
 
-/a+/
+/a+/I
 
-/(baa|a+)/
+/(baa|a+)/I
 
-/a{0,3}/
+/a{0,3}/I
 
-/baa{3,}/
+/baa{3,}/I
 
-/"([^\\"]+|\\.)*"/
+/"([^\\"]+|\\.)*"/I
 
-/(abc|ab[cd])/
+/(abc|ab[cd])/I
 
-/(a|.)/
+/(a|.)/I
 
-/a|ba|\w/
+/a|ba|\w/I
 
-/abc(?=pqr)/
+/abc(?=pqr)/I
 
-/...(?<=abc)/
+/...(?<=abc)/I
 
-/abc(?!pqr)/
+/abc(?!pqr)/I
 
-/ab./
+/ab./I
 
-/ab[xyz]/
+/ab[xyz]/I
 
-/abc*/
+/abc*/I
 
-/ab.c*/
+/ab.c*/I
 
-/a.c*/
+/a.c*/I
 
-/.c*/
+/.c*/I
 
-/ac*/
+/ac*/I
 
-/(a.c*|b.c*)/
+/(a.c*|b.c*)/I
 
-/a.c*|aba/
+/a.c*|aba/I
 
-/.+a/
+/.+a/I
 
-/(?=abcda)a.*/
+/(?=abcda)a.*/I
 
-/(?=a)a.*/
+/(?=a)a.*/I
 
-/a(b)*/
+/a(b)*/I
 
-/a\d*/
+/a\d*/I
 
-/ab\d*/
+/ab\d*/I
 
-/a(\d)*/
+/a(\d)*/I
 
-/abcde{0,0}/
+/abcde{0,0}/I
 
-/ab\d+/
+/ab\d+/I
 
-/a(?(1)b)/
+/a(?(1)b)/I
 
-/a(?(1)bag|big)/
+/a(?(1)bag|big)/I
 
-/a(?(1)bag|big)*/
+/a(?(1)bag|big)*/I
 
-/a(?(1)bag|big)+/
+/a(?(1)bag|big)+/I
 
-/a(?(1)b..|b..)/
+/a(?(1)b..|b..)/I
 
-/ab\d{0}e/
+/ab\d{0}e/I
 
-/a?b?/
+/a?b?/I
     a
     b
     ab
@@ -586,14 +588,14 @@
     *** Failers
     \N     
     
-/|-/
+/|-/I
     abcd
     -abc
     \Nab-c
     *** Failers
     \Nabc     
 
-/a*(b+)(z)(z)/P
+/a*(b+)(z)(z)/IP
     aaaabbbbzzzz
     aaaabbbbzzzz\O0
     aaaabbbbzzzz\O1
@@ -602,7 +604,7 @@
     aaaabbbbzzzz\O4
     aaaabbbbzzzz\O5
     
-/^.?abcd/S 
+/^.?abcd/IS 
 
 /\(             # ( at start
   (?:           # Non-capturing bracket
@@ -611,7 +613,7 @@
   (?R)          # Recurse - i.e. nested bracketed string
   )*            # Zero or more contents
   \)            # Closing )
-  /x
+  /Ix
     (abcd)
     (abcd)xyz
     xyz(abcd)
@@ -624,11 +626,11 @@
     abcd)
     (abcd  
 
-/\(  ( (?>[^()]+) | (?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<p>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
     <>
     <abcd>
     <abc <123> hij>
@@ -940,9 +942,9 @@
     *** Failers
     <abc
 
-|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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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)*\))*<xyz<$/
+/^>abc>([^()]|\((?1)*\))*<xyz<$/I
    >abc>123<xyz<
    >abc>1(2)3<xyz<
    >abc>(1(2)3)<xyz<
@@ -1122,7 +1124,7 @@
 
 /(a(?1)+b)/D
 
-/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
+/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
     1221
     Satan, oscillate my metallic sonatas!
     A man, a plan, a canal: Panama!
@@ -1130,21 +1132,21 @@
     *** Failers
     The quick brown fox  
     
-/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
+/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
     12
     (((2+2)*-3)-7)
     -12
     *** Failers
     ((2+2)*-3)-7)
          
-/^(x(y|(?1){2})z)/
+/^(x(y|(?1){2})z)/I
     xyz
     xxyzxyzz 
     *** Failers
     xxyzz
     xxyzxyzxyzz   
 
-/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
+/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
     <>
     <abcd>
     <abc <123> hij>
@@ -1154,19 +1156,19 @@
     *** Failers
     <abc
 
-/(?1)/
+/(?1)/I
 
-/((?2)(abc)/
+/((?2)(abc)/I
 
-/^(abc)def(?1)/
+/^(abc)def(?1)/I
     abcdefabc
 
-/^(a|b|c)=(?1)+/
+/^(a|b|c)=(?1)+/I
     a=a
     a=b
     a=bc  
 
-/^(a|b|c)=((?1))+/
+/^(a|b|c)=((?1))+/I
     a=a
     a=b
     a=bc  
@@ -1179,7 +1181,7 @@
 
 /(?P<a>a)...(?P=a)bbb(?P>a)d/D
 
-/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i
+/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\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
 
-/(?P<one>a)(bc)/ND
+/(?P<one>a)(bc)/IND
   abc
 
-/(a)(?P<named>bc)/ND
+/(a)(?P<named>bc)/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(?P<one>cd)ef(?P<two>gh)/
+/ab(?P<one>cd)ef(?P<two>gh)/I
     abcdefgh
     abcdefgh\C1\Gtwo
     abcdefgh\Cone\Ctwo
@@ -1241,20 +1243,20 @@
 
 /(?P<Test>)(?P<Tes>)/D
 
-/(?P<Z>zz)(?P<A>aa)/
+/(?P<Z>zz)(?P<A>aa)/I
     zzaa\CZ
     zzaa\CA
 
-/(?P<x>eks)(?P<x>eccs)/
+/(?P<x>eks)(?P<x>eccs)/I
 
-/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/
+/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
 
-"\[((?P<elem>\d+)(,(?P>elem))*)\]"
+"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
     [10,20,30,5,5,4,4,2,43,23,4234]
     *** Failers
     []  
 
-"\[((?P<elem>\d+)(,(?P>elem))*)?\]"
+"\[((?P<elem>\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
     ** Failers
     bca
     
-/abc/F>testsavedregex
+/abc/IF>testsavedregex
 <testsavedregex
     abc
     ** Failers
     bca
 
-/(a|b)/S>testsavedregex
+/(a|b)/IS>testsavedregex
 <testsavedregex
     abc
     ** Failers
     def  
     
-/(a|b)/SF>testsavedregex
+/(a|b)/ISF>testsavedregex
 <testsavedregex
     abc
     ** Failers
     def  
     
-~<(\w+)/?>(.)*</(\1)>~smg
+~<(\w+)/?>(.)*</(\1)>~smgI
     <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
 
 /^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
 
-"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"
+"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)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
 
-"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"
+"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"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(?P<name>b)c/PN
+/a(?P<name>b)c/IPN
     abc  
     
-/\x{100}/ 
+/\x{100}/I 
+
+/\x{0000ff}/I
+
+/^((?P<A>a1)|(?P<A>a2)b)/I
+
+/^((?P<A>a1)|(?P<A>a2)b)/IJ
+    a1b\CA
+    a2b\CA 
+    ** Failers
+    a1b\CZ\CA 
+    
+/^(?P<A>a)(?P<A>b)/IJ
+    ab\CA
+    
+/^(?P<A>a)(?P<A>b)|cd/IJ
+    ab\CA
+    cd\CA 
+  
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
+    cdefgh\CA 
+  
+/^((?P<A>a1)|(?P<A>a2)b)/IJ
+    a1b\GA
+    a2b\GA 
+    ** Failers
+    a1b\GZ\GA 
+    
+/^(?P<A>a)(?P<A>b)/IJ
+    ab\GA
+    
+/^(?P<A>a)(?P<A>b)|cd/IJ
+    ab\GA
+    cd\GA 
+  
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
+    cdefgh\GA 
+  
+/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
+    a1b\CA
+    a2b\CA 
+    
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/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
+
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
+    a bc d\CA\CB\CC
+
+/^(?P<A>a)?(?(A)a|b)/I
+    aabc
+    bc
+    ** Failers
+    abc   
+
+/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
+    bXaX
+
+/(?:(?(2y)a|b)(X))+/I
+
+/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
+
+/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
+    bbXaaX
+
+/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
+    (b)\\Xa\\X
+
+/(?P<ABC/I
+
+/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
+    bXXaYYaY
+    bXYaXXaX  
+
+/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
+    bXXaYYaY
+
+/\777/I
+
+/\s*,\s*/IS
+    \x0b,\x0b
+    \x0c,\x0d 
+
+/^abc/Im
+    xyz\nabc
+    xyz\nabc\<lf>
+    xyz\r\nabc\<lf>
+    xyz\rabc\<cr>
+    xyz\r\nabc\<crlf>
+    ** Failers 
+    xyz\nabc\<cr>
+    xyz\r\nabc\<cr>
+    xyz\nabc\<crlf>
+    xyz\rabc\<crlf>
+    xyz\rabc\<lf>
+    
+/abc$/Im<lf>
+    xyzabc
+    xyzabc\n 
+    xyzabc\npqr 
+    xyzabc\r\<cr> 
+    xyzabc\rpqr\<cr> 
+    xyzabc\r\n\<crlf> 
+    xyzabc\r\npqr\<crlf> 
+    ** Failers
+    xyzabc\r 
+    xyzabc\rpqr 
+    xyzabc\r\n 
+    xyzabc\r\npqr 
+    
+/^abc/Im<cr>
+    xyz\rabcdef
+    xyz\nabcdef\<lf>
+    ** Failers  
+    xyz\nabcdef
+       
+/^abc/Im<lf>
+    xyz\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers  
+    xyz\rabcdef
+       
+/^abc/Im<crlf>
+    xyz\r\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers  
+    xyz\rabcdef
+    
+/^abc/Im<bad>
+
+/abc/I
+    xyz\rabc\<bad>
+    abc  
+       
+/.*/I<lf>
+    abc\ndef
+    abc\rdef
+    abc\r\ndef
+    \<cr>abc\ndef
+    \<cr>abc\rdef
+    \<cr>abc\r\ndef
+    \<crlf>abc\ndef
+    \<crlf>abc\rdef
+    \<crlf>abc\r\ndef
+
+/\w+(.)(.)?def/Is
+    abc\ndef
+    abc\rdef
+    abc\r\ndef
+
++((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
+   /* this is a C style comment */\M
+
+/(?P<B>25[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
+
+/(?P<abc>x)(?P<xyz>y)/I
+    xy\Cabc\Cxyz
+
+/(?<abc>x)(?'xyz'y)/I
+    xy\Cabc\Cxyz
+
+/(?<abc'x)(?'xyz'y)/I
+
+/(?<abc>x)(?'xyz>y)/I
+
+/(?P'abc'x)(?P<xyz>y)/I
+
+/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
+    bXaX
+    bXbX
+    ** Failers
+    aXaX   
+    aXbX 
+
+/^(?P>abc)(?<abcd>xxx)/
+
+/^(?P>abc)(?<abc>x|y)/
+    xx
+    xy
+    yy
+    yx   
+
+/^(?P>abc)(?P<abc>x|y)/
+    xx
+    xy
+    yy
+    yx   
+
+/^((?(abc)a|b)(?<abc>x|y))+/
+    bxay
+    bxby 
+    ** Failers
+    axby  
+
+/^(((?P=abc)|X)(?<abc>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)[()](?<abc>)/B
+
+/^((?(abc)y)[()](?P<abc>x))+/B
+    (xy)x
+    
+/^(?P>abc)\Q()\E(?<abc>)/B 
+
+/^(?P>abc)[a\Q(]\E(](?<abc>)/B 
+
+/^(?P>abc) # this is (a comment)
+  (?<abc>)/Bx 
+
+/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\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<abc>:/I
+    abcd:
+
+/(?'abc'\w+):\k<abc>{2}/
+    a:aaxyz
+    ab:ababxyz
+    ** Failers
+    a:axyz   
+    ab:abxyz 
+
+/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
+    adaa
+    ** Failers
+    addd
+    adbb   
+
+/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
+    bdaa
+    bdab
+    ** Failers
+    bddd   
+
+/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
+    abd
+    ce 
+    
+/(?(<bc))/
+
+/(?(''))/ 
+
+/(?('R')stuff)/
+
+/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+
+/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+
+/(?<A> (?'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> a) (?<B> b) )  (?&A) (?&B) /x
+    abcd
+    
+/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
+  (?(DEFINE)
+  (?<NAME_PAT>[a-z]+)
+  (?<ADDRESS_PAT>\d+)
+  )/x
+    metcalfe 33
+ 
+/^(?(DEFINE) abc | xyz ) /x
+    
+/(?(DEFINE) abc) xyz/xI
+
+/(?(DEFINE) abc){3} xyz/x
+
+/(a|)*\d/
+  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
+
+/^a.b/<lf>
+    a\rb
+    a\nb\<cr> 
+    ** Failers
+    a\nb
+    a\nb\<any>
+    a\rb\<cr>   
+    a\rb\<any>   
+
+/^abc./mgx<any>
+    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK
+
+/abc.$/mgx<any>
+    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9
+
+/a/<cr><any>
+
+/a/<any><crlf>
+
+/^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(?<abc>P)/I
+    abcPXP123
+
+/(?1)X(?<abc>P)/I
+    abcPXP123
+
+/(?(DEFINE)(?<byte>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)(?<byte>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)*(?<abc>x)/
+    123axbaxbaxbx456
+    123axbaxbaxb456
+      
+/(?:a(?&abc)b){1,5}(?<abc>x)/
+    123axbaxbaxbx456
+
+/(?:a(?&abc)b){2,5}(?<abc>x)/
+    123axbaxbaxbx456
+
+/(?:a(?&abc)b){2,}(?<abc>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/<lf>
+    a\rb
+    *** Failers
+    a\nb
+
+/.+foo/
+    afoo
+    ** Failers 
+    \r\nfoo 
+    \nfoo 
+
+/.+foo/<crlf>
+    afoo
+    \nfoo 
+    ** Failers 
+    \r\nfoo 
+
+/.+foo/<any>
+    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<any>
+    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
+
+/abc.$/mgx8<any>
+    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/<lf>
     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\<lf>
+    xyz\r\nabc\<lf>
+    xyz\rabc\<cr>
+    xyz\r\nabc\<crlf>
+    ** Failers 
+    xyz\nabc\<cr>
+    xyz\r\nabc\<cr>
+    xyz\nabc\<crlf>
+    xyz\rabc\<crlf>
+    xyz\rabc\<lf>
+    
+/abc$/m<lf>
+    xyzabc
+    xyzabc\n 
+    xyzabc\npqr 
+    xyzabc\r\<cr> 
+    xyzabc\rpqr\<cr> 
+    xyzabc\r\n\<crlf> 
+    xyzabc\r\npqr\<crlf> 
+    ** Failers
+    xyzabc\r 
+    xyzabc\rpqr 
+    xyzabc\r\n 
+    xyzabc\r\npqr 
+    
+/^abc/m<cr>
+    xyz\rabcdef
+    xyz\nabcdef\<lf>
+    ** Failers  
+    xyz\nabcdef
+       
+/^abc/m<lf>
+    xyz\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers  
+    xyz\rabcdef
+       
+/^abc/m<crlf>
+    xyz\r\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers  
+    xyz\rabcdef
+    
+/.*/<lf>
+    abc\ndef
+    abc\rdef
+    abc\r\ndef
+    \<cr>abc\ndef
+    \<cr>abc\rdef
+    \<cr>abc\r\ndef
+    \<crlf>abc\ndef
+    \<crlf>abc\rdef
+    \<crlf>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/<lf>
+    a\rb
+    a\nb\<cr> 
+    ** Failers
+    a\nb
+    a\nb\<any>
+    a\rb\<cr>   
+    a\rb\<any>   
+
+/^abc./mgx<any>
+    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK
+
+/abc.$/mgx<any>
+    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/<crlf>
+    afoo
+    \nfoo 
+    ** Failers 
+    \r\nfoo 
+
+/.+foo/<any>
+    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<any>
+    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
+
+/abc.$/mgx8<any>
+    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
 
+/(?<![^f]oo)(bar)/
+    foobarX 
+ 0: bar
+ 1: bar
+    ** Failers 
+No match
+    boobarX
+No match
+
+/(?<![^f])X/
+    offX
+ 0: X
+    ** Failers
+No match
+    onyX  
+No match
+
+/(?<=[^f])X/
+    onyX
+ 0: X
+    ** Failers
+No match
+    offX 
+No match
+
+/^/mg
+    a\nb\nc\n
+ 0: 
+ 0: 
+ 0: 
+    \ 
+ 0: 
+    
+/(?<=C\n)^/mg
+    A\nC\nC\n 
+ 0: 
+
+/(?:(?(1)a|b)(X))+/
+    bXaX
+ 0: bXaX
+ 1: X
+
+/(?:(?(1)\1a|b)(X|Y))+/
+    bXXaYYaY
+ 0: bXXaYYaY
+ 1: Y
+    bXYaXXaX  
+ 0: bX
+ 1: X
+
+/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
+    bXXaYYaY
+ 0: bX
+ 1: 
+ 2: 
+ 3: 
+ 4: 
+ 5: 
+ 6: 
+ 7: 
+ 8: 
+ 9: 
+10: X
+
+/[[,abc,]+]/
+    abc]
+ 0: abc]
+    a,b]
+ 0: a,b]
+    [a,b,c]  
+ 0: [a,b,c]
+
+/(?-x: )/x
+    A\x20B
+ 0:  
+    
+"(?x)(?-x: \s*#\s*)"
+    A # B
+ 0:  # 
+    ** Failers
+No match
+    #  
+No match
+
+"(?x-is)(?:(?-ixs) \s*#\s*) include"
+    A #include
+ 0:  #include
+    ** Failers
+No match
+    A#include  
+No match
+    A #Include
+No match
+
+/a*b*\w/
+    aaabbbb
+ 0: aaabbbb
+    aaaa
+ 0: aaaa
+    a
+ 0: a
+
+/a*b?\w/
+    aaabbbb
+ 0: aaabb
+    aaaa
+ 0: aaaa
+    a
+ 0: a
+
+/a*b{0,4}\w/
+    aaabbbb
+ 0: aaabbbb
+    aaaa
+ 0: aaaa
+    a
+ 0: a
+
+/a*b{0,}\w/
+    aaabbbb
+ 0: aaabbbb
+    aaaa
+ 0: aaaa
+    a
+ 0: a
+    
+/a*\d*\w/
+    0a
+ 0: 0a
+    a 
+ 0: a
+    
+/a*b *\w/x
+    a 
+ 0: a
+
+/a*b#comment
+  *\w/x
+    a 
+ 0: a
+
+/a* b *\w/x
+    a 
+ 0: a
+
+/^\w+=.*(\\\n.*)*/
+    abc=xyz\\\npqr
+ 0: abc=xyz\
+
+/(?=(\w+))\1:/
+    abcd:
+ 0: abcd:
+ 1: abcd
+
+/^(?=(\w+))\1:/
+    abcd:
+ 0: abcd:
+ 1: abcd
+
+/^\Eabc/
+    abc
+ 0: abc
+    
+/^[\Eabc]/
+    a
+ 0: a
+    ** Failers 
+No match
+    E 
+No match
+    
+/^[a-\Ec]/
+    b
+ 0: b
+    ** Failers
+No match
+    -
+No match
+    E    
+No match
+
+/^[a\E\E-\Ec]/
+    b
+ 0: b
+    ** Failers
+No match
+    -
+No match
+    E    
+No match
+
+/^[\E\Qa\E-\Qz\E]+/
+    b
+ 0: b
+    ** Failers
+No match
+    -  
+No match
+    
+/^[a\Q]bc\E]/
+    a
+ 0: a
+    ]
+ 0: ]
+    c
+ 0: c
+    
+/^[a-\Q\E]/
+    a
+ 0: a
+    -     
+ 0: -
+
+/^(a()*)*/
+    aaaa
+ 0: aaaa
+ 1: a
+ 2: 
+
+/^(?:a(?:(?:))*)*/
+    aaaa
+ 0: aaaa
+
+/^(a()+)+/
+    aaaa
+ 0: aaaa
+ 1: a
+ 2: 
+
+/^(?:a(?:(?:))+)+/
+    aaaa
+ 0: aaaa
+
+/(a){0,3}(?(1)b|(c|))*D/
+    abbD
+ 0: abbD
+ 1: a
+    ccccD
+ 0: ccccD
+ 1: <unset>
+ 2: 
+    D  
+ 0: D
+ 1: <unset>
+ 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)(?>.*)(?<!\n)/
+  abc
+ 0: abc
+  abc\n  
+No match
+
+/^(?![^\n]*\n\z)/
+  abc
+ 0: 
+  abc\n 
+No match
+  
+/\z(?<!\n)/
+  abc
+ 0: 
+  abc\n  
+No match
+
 / End of testinput1 /
diff -Nurp tin-1.9.1/pcre/testdata/testoutput2 tin-1.9.2/pcre/testdata/testoutput2
--- tin-1.9.1/pcre/testdata/testoutput2	2006-02-06 13:17:16.000000000 +0100
+++ tin-1.9.2/pcre/testdata/testoutput2	2006-12-19 10:31:35.000000000 +0100
@@ -1,10 +1,10 @@
-/(a)b|/
+/(a)b|/I
 Capturing subpattern count = 1
 No options
 No first char
 No need char
 
-/abc/
+/abc/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -22,7 +22,7 @@ No match
     ABC
 No match
 
-/^abc/
+/^abc/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -38,35 +38,35 @@ No match
     \Adefabc
 No match
 
-/a+bc/
+/a+bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'c'
 
-/a*bc/
+/a*bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 Need char = 'c'
 
-/a{3}bc/
+/a{3}bc/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'c'
 
-/(abc|a+z)/
+/(abc|a+z)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/^abc$/
+/^abc$/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -78,10 +78,10 @@ No match
     def\nabc
 No match
 
-/ab\gdef/X
+/ab\hdef/X
 Failed: unrecognized character follows \ at offset 3
 
-/(?X)ab\gdef/X
+/(?X)ab\hdef/X
 Failed: unrecognized character follows \ at offset 7
 
 /x{5,4}/
@@ -111,21 +111,21 @@ Failed: missing ) after comment at offse
 /(?z)abc/
 Failed: unrecognized character after (? at offset 2
 
-/.*b/
+/.*b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'b'
 
-/.*?b/
+/.*?b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'b'
 
-/cat|dog|elephant/
+/cat|dog|elephant/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -135,7 +135,7 @@ No need char
     this sentences rambles on and on for a while and then reaches elephant
  0: elephant
 
-/cat|dog|elephant/S
+/cat|dog|elephant/IS
 Capturing subpattern count = 0
 No options
 No first char
@@ -146,7 +146,7 @@ Starting byte set: c d e 
     this sentences rambles on and on for a while and then reaches elephant
  0: elephant
 
-/cat|dog|elephant/iS
+/cat|dog|elephant/IiS
 Capturing subpattern count = 0
 Options: caseless
 No first char
@@ -157,14 +157,14 @@ Starting byte set: C D E c d e 
     this sentences rambles on and on for a while to elephant ElePhant
  0: elephant
 
-/a|[bcd]/S
+/a|[bcd]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b c d 
 
-/(a|[^\dZ])/S
+/(a|[^\dZ])/IS
 Capturing subpattern count = 1
 No options
 No first char
@@ -184,7 +184,7 @@ Starting byte set: \x00 \x01 \x02 \x03 \
   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
   \xfc \xfd \xfe \xff 
 
-/(a|b)*[\s]/S
+/(a|b)*[\s]/IS
 Capturing subpattern count = 1
 No options
 No first char
@@ -197,7 +197,7 @@ Failed: reference to non-existent subpat
 /{4,5}abc/
 Failed: nothing to repeat at offset 4
 
-/(a)(b)(c)\2/
+/(a)(b)(c)\2/I
 Capturing subpattern count = 3
 Max back reference = 2
 No options
@@ -228,7 +228,7 @@ Matched, but too many substrings
  2: b
  3: c
 
-/(a)bc|(a)(b)\2/
+/(a)bc|(a)(b)\2/I
 Capturing subpattern count = 3
 Max back reference = 2
 No options
@@ -270,7 +270,7 @@ Matched, but too many substrings
  2: a
  3: b
 
-/abc$/E
+/abc$/IE
 Capturing subpattern count = 0
 Options: dollar_endonly
 First char = 'a'
@@ -287,7 +287,7 @@ No match
 /(a)(b)(c)(d)(e)\6/
 Failed: reference to non-existent subpattern at offset 17
 
-/the quick brown fox/
+/the quick brown fox/I
 Capturing subpattern count = 0
 No options
 First char = 't'
@@ -297,7 +297,7 @@ Need char = 'x'
     this is a line with the quick brown fox
  0: the quick brown fox
 
-/the quick brown fox/A
+/the quick brown fox/IA
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -312,7 +312,7 @@ No match
 /ab(?z)cd/
 Failed: unrecognized character after (? at offset 4
 
-/^abc|def/
+/^abc|def/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -322,11 +322,11 @@ No need char
     abcdef\B
  0: def
 
-/.*((abc)$|(def))/
+/.*((abc)$|(def))/I
 Capturing subpattern count = 3
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
     defabc
  0: defabc
@@ -338,19 +338,19 @@ No need char
  2: <unset>
  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 = '>'
     abc<def>ghi<klm>nop
  0: <def>ghi<klm>
 
-/<.*?>/
+/<.*?>/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -426,7 +426,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*>/U
+/<.*>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -435,7 +435,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
     
-/(?U)<.*>/
+/(?U)<.*>/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -444,7 +444,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*?>/U
+/<.*?>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -453,7 +453,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>ghi<klm>
     
-/={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: ========
     
-/(?<!bar|cattle)foo/
+/(?<!bar|cattle)foo/I
 Capturing subpattern count = 0
 No options
 First char = 'f'
@@ -496,69 +496,68 @@ Failed: lookbehind assertion is not fixe
 /(?<!(foo)a\1)bar/
 Failed: lookbehind assertion is not fixed length at offset 12
 
-/(?i)abc/
+/(?i)abc/I
 Capturing subpattern count = 0
 Options: caseless
 First char = 'a' (caseless)
 Need char = 'c' (caseless)
 
-/(a|(?m)a)/
+/(a|(?m)a)/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/(?i)^1234/
+/(?i)^1234/I
 Capturing subpattern count = 0
 Options: anchored caseless
 No first char
 No need char
 
-/(^b|(?i)^d)/
+/(^b|(?i)^d)/I
 Capturing subpattern count = 1
 Options: anchored
-Case state changes
 No first char
 No need char
 
-/(?s).*/
+/(?s).*/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: anchored dotall
 No first char
 No need char
 
-/[abcd]/S
+/[abcd]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b c d 
 
-/(?i)[abcd]/S
+/(?i)[abcd]/IS
 Capturing subpattern count = 0
 Options: caseless
 No first char
 No need char
 Starting byte set: A B C D a b c d 
 
-/(?m)[xy]|(b|c)/S
+/(?m)[xy]|(b|c)/IS
 Capturing subpattern count = 1
 Options: multiline
 No first char
 No need char
 Starting byte set: b c x y 
 
-/(^a|^b)/m
+/(^a|^b)/Im
 Capturing subpattern count = 1
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
-/(?i)(^a|^b)/m
+/(?i)(^a|^b)/Im
 Capturing subpattern count = 1
 Options: caseless multiline
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
 /(a)(?(1)a|b|c)/
@@ -568,18 +567,21 @@ Failed: conditional group contains more 
 Failed: conditional group contains more than two branches at offset 12
 
 /(?(1a)/
-Failed: malformed number after (?( at offset 4
+Failed: missing ) at offset 6
+
+/(?(1a))/
+Failed: reference to non-existent subpattern at offset 6
 
 /(?(?i))/
 Failed: assertion expected after (?( at offset 3
 
 /(?(abc))/
-Failed: assertion expected after (?( at offset 3
+Failed: reference to non-existent subpattern at offset 7
 
 /(?(?<ab))/
-Failed: unrecognized character after (?< at offset 5
+Failed: syntax error in subpattern name (missing terminator) at offset 7
 
-/((?s)blah)\s+\1/
+/((?s)blah)\s+\1/I
 Capturing subpattern count = 1
 Max back reference = 1
 Partial matching not supported
@@ -587,43 +589,40 @@ No options
 First char = 'b'
 Need char = 'h'
 
-/((?i)blah)\s+\1/
+/((?i)blah)\s+\1/I
 Capturing subpattern count = 1
 Max back reference = 1
 Partial matching not supported
 No options
-Case state changes
 First char = 'b' (caseless)
 Need char = 'h' (caseless)
 
-/((?i)b)/DS
+/((?i)b)/IDS
 ------------------------------------------------------------------
-  0  15 Bra 0
-  3   7 Bra 1
-  6  01 Opt
-  8  NC b
- 10   7 Ket
- 13  00 Opt
- 15  15 Ket
- 18     End
+  0  17 Bra 0
+  3   9 Bra 1
+  8  01 Opt
+ 10  NC b
+ 12   9 Ket
+ 15  00 Opt
+ 17  17 Ket
+ 20     End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
-Case state changes
 First char = 'b' (caseless)
 No need char
 Study returned NULL
 
-/(a*b|(?i:c*(?-i)d))/S
+/(a*b|(?i:c*(?-i)d))/IS
 Capturing subpattern count = 1
 Partial matching not supported
 No options
-Case state changes
 No first char
 No need char
 Starting byte set: C a b c d 
 
-/a$/
+/a$/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -639,7 +638,7 @@ No match
     \Za\n   
 No match
 
-/a$/m
+/a$/Im
 Capturing subpattern count = 0
 Options: multiline
 First char = 'a'
@@ -655,19 +654,19 @@ No match
     \Za
 No match
     
-/\Aabc/m
+/\Aabc/Im
 Capturing subpattern count = 0
 Options: anchored multiline
 No first char
 No need char
 
-/^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'
 
-/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
 Capturing subpattern count = 5
 Partial matching not supported
 Options: anchored
@@ -681,28 +680,28 @@ No need char
  4: bbbbccccc
  5: def
 
-/(?<=foo)[ab]/S
+/(?<=foo)[ab]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b 
 
-/(?<!foo)(alpha|omega)/S
+/(?<!foo)(alpha|omega)/IS
 Capturing subpattern count = 1
 No options
 No first char
 Need char = 'a'
 Starting byte set: a o 
 
-/(?!alphabet)[ab]/S
+/(?!alphabet)[ab]/IS
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Starting byte set: a b 
 
-/(?<=foo\n)^bar/m
+/(?<=foo\n)^bar/Im
 Capturing subpattern count = 0
 Options: multiline
 No first char
@@ -718,10 +717,10 @@ No match
     abc\nbarton 
 No match
 
-/^(?<=foo\n)bar/m
+/^(?<=foo\n)bar/Im
 Capturing subpattern count = 0
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'r'
     foo\nbarbar 
  0: bar
@@ -734,10 +733,10 @@ No match
     abc\nbarton 
 No match
 
-/(?>^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: <unset>
  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
 
-/(?<!(foo)a)bar/
+/(?<!(foo)a)bar/I
 Capturing subpattern count = 1
 No options
 First char = 'b'
@@ -843,13 +836,13 @@ No match
     fooabar  
 No match
 
-/This one is here because Perl 5.005_02 doesn't fail it/
+/This one is here because Perl 5.005_02 doesn't fail it/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 Need char = 't'
 
-/^(a)?(?(1)a|b)+$/
+/^(a)?(?(1)a|b)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -859,13 +852,13 @@ No match
     a 
 No match
 
-/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/
+/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
 Need char = 'g'
 
-/^(a\1?){4}$/
+/^(a\1?){4}$/I
 Capturing subpattern count = 1
 Max back reference = 1
 Options: anchored
@@ -875,7 +868,7 @@ No need char
  0: aaaaaa
  1: aa
     
-/These are syntax tests from Perl 5.005/
+/These are syntax tests from Perl 5.005/I
 Capturing subpattern count = 0
 No options
 First char = 'T'
@@ -917,31 +910,31 @@ Failed: reference to non-existent subpat
 /(a)|\2/
 Failed: reference to non-existent subpattern at offset 6
 
-/a[b-a]/i
+/a[b-a]/Ii
 Failed: range out of order in character class at offset 4
 
-/a[]b/i
+/a[]b/Ii
 Failed: missing terminating ] for character class at offset 4
 
-/a[/i
+/a[/Ii
 Failed: missing terminating ] for character class at offset 2
 
-/*a/i
+/*a/Ii
 Failed: nothing to repeat at offset 0
 
-/(*)b/i
+/(*)b/Ii
 Failed: nothing to repeat at offset 1
 
-/abc)/i
+/abc)/Ii
 Failed: unmatched parentheses at offset 3
 
-/(abc/i
+/(abc/Ii
 Failed: missing ) at offset 4
 
-/a**/i
+/a**/Ii
 Failed: nothing to repeat at offset 2
 
-/)(/i
+/)(/Ii
 Failed: unmatched parentheses at offset 0
 
 /:(?:/
@@ -966,7 +959,7 @@ Failed: unrecognized character after (? 
 Failed: unrecognized character after (? at offset 3
 
 /(?(1?)a|b)/
-Failed: malformed number after (?( at offset 4
+Failed: malformed number or name after (?( at offset 4
 
 /(?(1)a|b|c)/
 Failed: conditional group contains more than two branches at offset 10
@@ -989,7 +982,7 @@ Failed: POSIX code 9: bad escape sequenc
 /abc/\i
 Failed: \ at end of pattern at offset 4
 
-/(a)bc(d)/
+/(a)bc(d)/I
 Capturing subpattern count = 2
 No options
 First char = 'a'
@@ -1009,7 +1002,7 @@ Need char = 'd'
  2: d
 copy substring 5 failed -7
      
-/(.{20})/
+/(.{20})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1021,13 +1014,13 @@ No need char
     abcdefghijklmnopqrstuvwxyz\C1
  0: abcdefghijklmnopqrst
  1: abcdefghijklmnopqrst
-copy substring 1 failed -6
+ 1C abcdefghijklmnopqrst (20)
     abcdefghijklmnopqrstuvwxyz\G1
  0: abcdefghijklmnopqrst
  1: abcdefghijklmnopqrst
  1G abcdefghijklmnopqrst (20)
      
-/(.{15})/
+/(.{15})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1042,7 +1035,7 @@ No need char
  1C abcdefghijklmno (15)
  1G abcdefghijklmno (15)
 
-/(.{16})/
+/(.{16})/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -1054,12 +1047,12 @@ No need char
     abcdefghijklmnopqrstuvwxyz\C1\G1\L
  0: abcdefghijklmnop
  1: abcdefghijklmnop
-copy substring 1 failed -6
+ 1C abcdefghijklmnop (16)
  1G abcdefghijklmnop (16)
  0L abcdefghijklmnop
  1L abcdefghijklmnop
     
-/^(a|(bc))de(f)/
+/^(a|(bc))de(f)/I
 Capturing subpattern count = 3
 Options: anchored
 No first char
@@ -1097,7 +1090,7 @@ get substring 4 failed -7
  3: f
  0C adef (4)
     
-/^abc\00def/
+/^abc\00def/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1109,15 +1102,15 @@ No need char
     
 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
-)?)?)?)?)?)?)?)?)?otherword/M
-Memory allocation (code space): 432
+)?)?)?)?)?)?)?)?)?otherword/IM
+Memory allocation (code space): 448
 Capturing subpattern count = 8
 Partial matching not supported
 No options
 First char = 'w'
 Need char = 'd'
 
-/.*X/D
+/.*X/ID
 ------------------------------------------------------------------
   0   7 Bra 0
   3     Any*
@@ -1128,10 +1121,10 @@ Need char = 'd'
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 'X'
 
-/.*X/Ds
+/.*X/IDs
 ------------------------------------------------------------------
   0   7 Bra 0
   3     Any*
@@ -1145,37 +1138,37 @@ Options: anchored dotall
 No first char
 Need char = 'X'
 
-/(.*X|^B)/D
+/(.*X|^B)/ID
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+  0  21 Bra 0
+  3   9 Bra 1
+  8     Any*
+ 10     X
+ 12   6 Alt
+ 15     ^
+ 16     B
+ 18  15 Ket
+ 21  21 Ket
+ 24     End
 ------------------------------------------------------------------
 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
 
-/(.*X|^B)/Ds
+/(.*X|^B)/IDs
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+  0  21 Bra 0
+  3   9 Bra 1
+  8     Any*
+ 10     X
+ 12   6 Alt
+ 15     ^
+ 16     B
+ 18  15 Ket
+ 21  21 Ket
+ 24     End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
@@ -1183,18 +1176,18 @@ Options: anchored dotall
 No first char
 No need char
     
-/(?s)(.*X|^B)/D
+/(?s)(.*X|^B)/ID
 ------------------------------------------------------------------
-  0  19 Bra 0
-  3   7 Bra 1
-  6     Any*
-  8     X
- 10   6 Alt
- 13     ^
- 14     B
- 16  13 Ket
- 19  19 Ket
- 22     End
+  0  21 Bra 0
+  3   9 Bra 1
+  8     Any*
+ 10     X
+ 12   6 Alt
+ 15     ^
+ 16     B
+ 18  15 Ket
+ 21  21 Ket
+ 24     End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 Partial matching not supported
@@ -1202,7 +1195,7 @@ Options: anchored dotall
 No first char
 No need char
 
-/(?s:.*X|^B)/D
+/(?s:.*X|^B)/ID
 ------------------------------------------------------------------
   0  25 Bra 0
   3   9 Bra 0
@@ -1221,10 +1214,10 @@ No need char
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 No need char
 
-/\Biss\B/+
+/\Biss\B/I+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1233,12 +1226,12 @@ Need char = 's'
  0: iss
  0+ issippi
 
-/\Biss\B/+P
+/\Biss\B/I+P
     Mississippi
  0: iss
  0+ issippi
 
-/iss/G+
+/iss/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1249,7 +1242,7 @@ Need char = 's'
  0: iss
  0+ ippi
 
-/\Biss\B/G+
+/\Biss\B/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1258,7 +1251,7 @@ Need char = 's'
  0: iss
  0+ issippi
 
-/\Biss\B/g+
+/\Biss\B/Ig+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1273,7 +1266,7 @@ No match
     Mississippi\A
 No match
 
-/(?<=[Ms])iss/g+
+/(?<=[Ms])iss/Ig+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1284,7 +1277,7 @@ Need char = 's'
  0: iss
  0+ ippi
 
-/(?<=[Ms])iss/G+
+/(?<=[Ms])iss/IG+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1293,7 +1286,7 @@ Need char = 's'
  0: iss
  0+ issippi
 
-/^iss/g+
+/^iss/Ig+
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1302,11 +1295,11 @@ No need char
  0: iss
  0+ issippi
     
-/.*iss/g+
+/.*iss/Ig+
 Capturing subpattern count = 0
 Partial matching not supported
 No options
-First char at start or follows \n
+First char at start or follows newline
 Need char = 's'
     abciss\nxyzisspqr 
  0: abciss
@@ -1314,7 +1307,7 @@ Need char = 's'
  0: xyziss
  0+ pqr
 
-/.i./+g
+/.i./I+g
 Capturing subpattern count = 0
 No options
 No first char
@@ -1344,7 +1337,7 @@ Need char = 'i'
  0: Mis
  0+ souri river
 
-/^.is/+g
+/^.is/I+g
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1353,7 +1346,7 @@ No need char
  0: Mis
  0+ sissippi
 
-/^ab\n/g+
+/^ab\n/Ig+
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1362,10 +1355,10 @@ No need char
  0: ab\x0a
  0+ ab\x0acd
 
-/^ab\n/mg+
+/^ab\n/Img+
 Capturing subpattern count = 0
 Options: multiline
-First char at start or follows \n
+First char at start or follows newline
 Need char = 10
     ab\nab\ncd
  0: ab\x0a
@@ -1373,272 +1366,272 @@ Need char = 10
  0: ab\x0a
  0+ cd
 
-/abc/
+/abc/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/abc|bac/
+/abc|bac/I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'c'
 
-/(abc|bac)/
+/(abc|bac)/I
 Capturing subpattern count = 1
 No options
 No first char
 Need char = 'c'
 
-/(abc|(c|dc))/
+/(abc|(c|dc))/I
 Capturing subpattern count = 2
 No options
 No first char
 Need char = 'c'
 
-/(abc|(d|de)c)/
+/(abc|(d|de)c)/I
 Capturing subpattern count = 2
 No options
 No first char
 Need char = 'c'
 
-/a*/
+/a*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/a+/
+/a+/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/(baa|a+)/
+/(baa|a+)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 No first char
 Need char = 'a'
 
-/a{0,3}/
+/a{0,3}/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/baa{3,}/
+/baa{3,}/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'b'
 Need char = 'a'
 
-/"([^\\"]+|\\.)*"/
+/"([^\\"]+|\\.)*"/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 First char = '"'
 Need char = '"'
 
-/(abc|ab[cd])/
+/(abc|ab[cd])/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/(a|.)/
+/(a|.)/I
 Capturing subpattern count = 1
 No options
 No first char
 No need char
 
-/a|ba|\w/
+/a|ba|\w/I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/abc(?=pqr)/
+/abc(?=pqr)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'r'
 
-/...(?<=abc)/
+/...(?<=abc)/I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 
-/abc(?!pqr)/
+/abc(?!pqr)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'c'
 
-/ab./
+/ab./I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab[xyz]/
+/ab[xyz]/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/abc*/
+/abc*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab.c*/
+/ab.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a.c*/
+/a.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/.c*/
+/.c*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 No need char
 
-/ac*/
+/ac*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/(a.c*|b.c*)/
+/(a.c*|b.c*)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
 No first char
 No need char
 
-/a.c*|aba/
+/a.c*|aba/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/.+a/
+/.+a/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 No first char
 Need char = 'a'
 
-/(?=abcda)a.*/
+/(?=abcda)a.*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'a'
 
-/(?=a)a.*/
+/(?=a)a.*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/a(b)*/
+/a(b)*/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/a\d*/
+/a\d*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 No need char
 
-/ab\d*/
+/ab\d*/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a(\d)*/
+/a(\d)*/I
 Capturing subpattern count = 1
 No options
 First char = 'a'
 No need char
 
-/abcde{0,0}/
+/abcde{0,0}/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'd'
 
-/ab\d+/
+/ab\d+/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
 First char = 'a'
 Need char = 'b'
 
-/a(?(1)b)/
+/a(?(1)b)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 No need char
 
-/a(?(1)bag|big)/
+/a(?(1)bag|big)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'g'
 
-/a(?(1)bag|big)*/
+/a(?(1)bag|big)*/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 No need char
 
-/a(?(1)bag|big)+/
+/a(?(1)bag|big)+/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'g'
 
-/a(?(1)b..|b..)/
+/a(?(1)b..|b..)/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'b'
 
-/ab\d{0}e/
+/ab\d{0}e/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
 Need char = 'e'
 
-/a?b?/
+/a?b?/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -1656,7 +1649,7 @@ No need char
     \N     
 No match
     
-/|-/
+/|-/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -1672,7 +1665,7 @@ No need char
     \Nabc     
 No match
 
-/a*(b+)(z)(z)/P
+/a*(b+)(z)(z)/IP
     aaaabbbbzzzz
  0: aaaabbbbzz
  1: bbbb
@@ -1699,7 +1692,7 @@ No match
  2: z
  3: z
     
-/^.?abcd/S 
+/^.?abcd/IS 
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1713,7 +1706,7 @@ Study returned NULL
   (?R)          # Recurse - i.e. nested bracketed string
   )*            # Zero or more contents
   \)            # Closing )
-  /x
+  /Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -1742,7 +1735,7 @@ No match
     (abcd  
 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: <unset>
 
-/\( ( ( (?>[^()]+) | ((?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
     <abc
 No match
 
-|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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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\<EjmhUZ\?\.akp2dF\>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)*\))*<xyz<$/
+/^>abc>([^()]|\((?1)*\))*<xyz<$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -4021,16 +3999,16 @@ Need char = '<'
 
 /(a(?1)b)/D
 ------------------------------------------------------------------
-  0  22 Bra 0
-  3  16 Bra 1
-  6     a
-  8   6 Once
- 11   3 Recurse
- 14   6 Ket
- 17     b
- 19  16 Ket
- 22  22 Ket
- 25     End
+  0  24 Bra 0
+  3  18 Bra 1
+  8     a
+ 10   6 Once
+ 13   3 Recurse
+ 16   6 Ket
+ 19     b
+ 21  18 Ket
+ 24  24 Ket
+ 27     End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
@@ -4039,23 +4017,23 @@ Need char = 'b'
 
 /(a(?1)+b)/D
 ------------------------------------------------------------------
-  0  22 Bra 0
-  3  16 Bra 1
-  6     a
-  8   6 Once
- 11   3 Recurse
- 14   6 KetRmax
- 17     b
- 19  16 Ket
- 22  22 Ket
- 25     End
+  0  24 Bra 0
+  3  18 Bra 1
+  8     a
+ 10   6 Once
+ 13   3 Recurse
+ 16   6 KetRmax
+ 19     b
+ 21  18 Ket
+ 24  24 Ket
+ 27     End
 ------------------------------------------------------------------
 Capturing subpattern count = 1
 No options
 First char = 'a'
 Need char = 'b'
 
-/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
+/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
 Capturing subpattern count = 4
 Max back reference = 4
 Partial matching not supported
@@ -4089,7 +4067,7 @@ No match
     The quick brown fox  
 No match
     
-/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
+/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 2
 Partial matching not supported
 Options: anchored
@@ -4110,7 +4088,7 @@ No match
     ((2+2)*-3)-7)
 No match
          
-/^(x(y|(?1){2})z)/
+/^(x(y|(?1){2})z)/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -4130,7 +4108,7 @@ No match
     xxyzxyzxyzz   
 No match
 
-/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
+/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
 Capturing subpattern count = 2
 Partial matching not supported
 Options: extended
@@ -4165,13 +4143,13 @@ No match
     <abc
 No match
 
-/(?1)/
+/(?1)/I
 Failed: reference to non-existent subpattern at offset 3
 
-/((?2)(abc)/
-Failed: reference to non-existent subpattern at offset 4
+/((?2)(abc)/I
+Failed: missing ) at offset 10
 
-/^(abc)def(?1)/
+/^(abc)def(?1)/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -4180,7 +4158,7 @@ No need char
  0: abcdefabc
  1: abc
 
-/^(a|b|c)=(?1)+/
+/^(a|b|c)=(?1)+/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -4195,7 +4173,7 @@ No need char
  0: a=bc
  1: a
 
-/^(a|b|c)=((?1))+/
+/^(a|b|c)=((?1))+/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -4215,19 +4193,19 @@ No need char
 
 /a(?P<name1>b|c)d(?P<longername2>e)/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(?P<c>c(?P<d>d)))(?P<a>a)/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'
 
 /(?P<a>a)...(?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<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i
+/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\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
 
-/(?P<one>a)(bc)/ND
+/(?P<one>a)(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)(?P<named>bc)/ND
+/(a)(?P<named>bc)/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(?P<one>cd)ef(?P<two>gh)/
+/ab(?P<one>cd)ef(?P<two>gh)/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<Tes>)(?P<Test>)/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<Test>)(?P<Tes>)/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
 
-/(?P<Z>zz)(?P<A>aa)/
+/(?P<Z>zz)(?P<A>aa)/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
 
-/(?P<x>eks)(?P<x>eccs)/
-Failed: two named groups have the same name at offset 16
+/(?P<x>eks)(?P<x>eccs)/I
+Failed: two named subpatterns have the same name at offset 15
 
-/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/
-Failed: two named groups have the same name at offset 31
+/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
+Failed: two named subpatterns have the same name at offset 30
 
-"\[((?P<elem>\d+)(,(?P>elem))*)\]"
+"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
 Capturing subpattern count = 3
 Named capturing subpatterns:
   elem   2
@@ -4647,7 +4626,7 @@ No match
     []  
 No match
 
-"\[((?P<elem>\d+)(,(?P>elem))*)?\]"
+"\[((?P<elem>\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
 Compiled regex loaded from testsavedregex
 No study data
-Capturing subpattern count = 0
-No options
-First char = 'a'
-Need char = 'c'
     abc
  0: abc
     ** Failers
@@ -5603,7 +5562,7 @@ No match
     bca
 No match
     
-/abc/F>testsavedregex
+/abc/IF>testsavedregex
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -5612,10 +5571,6 @@ Compiled regex written to testsavedregex
 <testsavedregex
 Compiled regex (byte-inverted) loaded from testsavedregex
 No study data
-Capturing subpattern count = 0
-No options
-First char = 'a'
-Need char = 'c'
     abc
  0: abc
     ** Failers
@@ -5623,7 +5578,7 @@ No match
     bca
 No match
 
-/(a|b)/S>testsavedregex
+/(a|b)/IS>testsavedregex
 Capturing subpattern count = 1
 No options
 No first char
@@ -5634,11 +5589,6 @@ Study data written to testsavedregex
 <testsavedregex
 Compiled regex loaded from testsavedregex
 Study data loaded from testsavedregex
-Capturing subpattern count = 1
-No options
-No first char
-No need char
-Starting byte set: a b 
     abc
  0: a
  1: a
@@ -5648,7 +5598,7 @@ Starting byte set: a b 
     def  
 No match
     
-/(a|b)/SF>testsavedregex
+/(a|b)/ISF>testsavedregex
 Capturing subpattern count = 1
 No options
 No first char
@@ -5659,11 +5609,6 @@ Study data written to testsavedregex
 <testsavedregex
 Compiled regex (byte-inverted) loaded from testsavedregex
 Study data loaded from testsavedregex
-Capturing subpattern count = 1
-No options
-No first char
-No need char
-Starting byte set: a b 
     abc
  0: a
  1: a
@@ -5673,7 +5618,7 @@ Starting byte set: a b 
     def  
 No match
     
-~<(\w+)/?>(.)*</(\1)>~smg
+~<(\w+)/?>(.)*</(\1)>~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
 
-"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"
+"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)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
 
-"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"
+"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"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(?P<name>b)c/PN
+/a(?P<name>b)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 = ' '
+/^((?P<A>a1)|(?P<A>a2)b)/I
+Failed: two named subpatterns have the same name at offset 17
+
+/^((?P<A>a1)|(?P<A>a2)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: <unset>
+ 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
+    
+/^(?P<A>a)(?P<A>b)/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
+    
+/^(?P<A>a)(?P<A>b)|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
+  
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/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: <unset>
+ 2: <unset>
+ 3: ef
+ 4: gh
+  C ef (2) A
+  
+/^((?P<A>a1)|(?P<A>a2)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: <unset>
+ 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
+    
+/^(?P<A>a)(?P<A>b)/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
+    
+/^(?P<A>a)(?P<A>b)|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
+  
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/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: <unset>
+ 2: <unset>
+ 3: ef
+ 4: gh
+  G ef (2) A
+  
+/(?J)^((?P<A>a1)|(?P<A>a2)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: <unset>
+ 3: a2
+  C a2 (2) A
+    
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/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'
+
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/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
+
+/^(?P<A>a)?(?(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)(?P<ZZ>X))+/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)(?P<ZZ>X))+/I
+Failed: reference to non-existent subpattern at offset 9
+
+/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/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\))\\(?P<ZZ>X))+/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
+
+/(?P<ABC/I
+Failed: syntax error in subpattern name (missing terminator) at offset 7
+
+/(?:(?(A)(?P=A)a|b)(?P<A>X|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)(?P<A>X|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\<lf>
+ 0: abc
+    xyz\r\nabc\<lf>
+ 0: abc
+    xyz\rabc\<cr>
+ 0: abc
+    xyz\r\nabc\<crlf>
+ 0: abc
+    ** Failers 
+No match
+    xyz\nabc\<cr>
+No match
+    xyz\r\nabc\<cr>
+No match
+    xyz\nabc\<crlf>
+No match
+    xyz\rabc\<crlf>
+No match
+    xyz\rabc\<lf>
+No match
+    
+/abc$/Im<lf>
+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\<cr> 
+ 0: abc
+    xyzabc\rpqr\<cr> 
+ 0: abc
+    xyzabc\r\n\<crlf> 
+ 0: abc
+    xyzabc\r\npqr\<crlf> 
+ 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<cr>
+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\<lf>
+ 0: abc
+    ** Failers  
+No match
+    xyz\nabcdef
+No match
+       
+/^abc/Im<lf>
+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\<cr>
+ 0: abc
+    ** Failers  
+No match
+    xyz\rabcdef
+No match
+       
+/^abc/Im<crlf>
+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\<cr>
+ 0: abc
+    ** Failers  
+No match
+    xyz\rabcdef
+No match
+    
+/^abc/Im<bad>
+Unknown newline type at: <bad>
+
+
+/abc/I
+Capturing subpattern count = 0
+No options
+First char = 'a'
+Need char = 'c'
+    xyz\rabc\<bad>
+Unknown newline type at: <bad>
+    abc  
+ 0: abc
+       
+/.*/I<lf>
+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
+    \<cr>abc\ndef
+ 0: abc\x0adef
+    \<cr>abc\rdef
+ 0: abc
+    \<cr>abc\r\ndef
+ 0: abc
+    \<crlf>abc\ndef
+ 0: abc\x0adef
+    \<crlf>abc\rdef
+ 0: abc\x0ddef
+    \<crlf>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 */
+
+/(?P<B>25[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
+------------------------------------------------------------------
+
+/(?P<abc>x)(?P<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
+
+/(?<abc>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
+
+/(?<abc'x)(?'xyz'y)/I
+Failed: syntax error in subpattern name (missing terminator) at offset 6
+
+/(?<abc>x)(?'xyz>y)/I
+Failed: syntax error in subpattern name (missing terminator) at offset 15
+
+/(?P'abc'x)(?P<xyz>y)/I
+Failed: unrecognized character after (?P at offset 3
+
+/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
+    bXaX
+ 0: bXaX
+ 1: X
+    bXbX
+ 0: bX
+ 1: X
+    ** Failers
+No match
+    aXaX   
+No match
+    aXbX 
+No match
+
+/^(?P>abc)(?<abcd>xxx)/
+Failed: reference to non-existent subpattern at offset 8
+
+/^(?P>abc)(?<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)(?P<abc>x|y)/
+    xx
+ 0: xx
+ 1: x
+    xy
+ 0: xy
+ 1: y
+    yy
+ 0: yy
+ 1: y
+    yx   
+ 0: yx
+ 1: x
+
+/^((?(abc)a|b)(?<abc>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)(?<abc>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)[()](?<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)[()](?P<abc>x))+/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(?<abc>)/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(](?<abc>)/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)
+  (?<abc>)/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*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\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: <unset>
+ 2: <unset>
+ 3: Satan, oscillate my metallic sonatas
+ 4: S
+    A man, a plan, a canal: Panama!
+ 0: A man, a plan, a canal: Panama!
+ 1: <unset>
+ 2: <unset>
+ 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: <unset>
+ 2: <unset>
+ 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<abc>:/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<abc>{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)(?<abc>d|e)\k<abc>{2}/J
+    adaa
+ 0: adaa
+ 1: a
+ 2: d
+    ** Failers
+No match
+    addd
+No match
+    adbb   
+No match
+
+/(?'abc'a|b)(?<abc>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
+
+/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
+    abd
+ 0: abd
+ 1: a
+    ce 
+ 0: ce
+    
+/(?(<bc))/
+Failed: malformed number or name after (?( at offset 6
+
+/(?(''))/ 
+Failed: assertion expected after (?( at offset 4
+
+/(?('R')stuff)/
+Failed: reference to non-existent subpattern at offset 7
+
+/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+ 0: abcabc1Xabc2XabcX
+ 1: abcabc1Xabc2XabcX
+ 2: abcabc1Xabc2XabcX
+
+/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+ 0: abcabc1Xabc2XabcX
+ 1: abcabc1Xabc2XabcX
+ 2: abcabc1Xabc2XabcX
+
+/(?<A> (?'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> a) (?<B> b) )  (?&A) (?&B) /x
+    abcd
+ 0: ab
+ 1: <unset>
+ 2: <unset>
+    
+/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
+  (?(DEFINE)
+  (?<NAME_PAT>[a-z]+)
+  (?<ADDRESS_PAT>\d+)
+  )/x
+    metcalfe 33
+ 0: metcalfe 33
+ 1: metcalfe
+ 2: 33
+ 3: <unset>
+ 4: <unset>
+ 
+/^(?(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/<lf>
+    a\rb
+ 0: a\x0db
+    a\nb\<cr> 
+ 0: a\x0ab
+    ** Failers
+No match
+    a\nb
+No match
+    a\nb\<any>
+No match
+    a\rb\<cr>   
+No match
+    a\rb\<any>   
+No match
+
+/^abc./mgx<any>
+    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<any>
+    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/<cr><any>
+Failed: inconsistent NEWLINE options at offset 0
+
+/a/<any><crlf>
+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(?<abc>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(?<abc>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)(?<byte>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: <unset>
+ 2: .4
+    131.111.10.206
+ 0: 131.111.10.206
+ 1: <unset>
+ 2: .206
+    10.0.0.0
+ 0: 10.0.0.0
+ 1: <unset>
+ 2: .0
+    ** Failers
+No match
+    10.6
+No match
+    455.3.4.5   
+No match
+
+/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>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: <unset>
+    131.111.10.206
+ 0: 131.111.10.206
+ 1: .206
+ 2: <unset>
+    10.0.0.0
+ 0: 10.0.0.0
+ 1: .0
+ 2: <unset>
+    ** Failers
+No match
+    10.6
+No match
+    455.3.4.5   
+No match
+    
+/(?:a(?&abc)b)*(?<abc>x)/
+    123axbaxbaxbx456
+ 0: axbaxbaxbx
+ 1: x
+    123axbaxbaxb456
+ 0: x
+ 1: x
+      
+/(?:a(?&abc)b){1,5}(?<abc>x)/
+    123axbaxbaxbx456
+ 0: axbaxbaxbx
+ 1: x
+
+/(?:a(?&abc)b){2,5}(?<abc>x)/
+    123axbaxbaxbx456
+ 0: axbaxbaxbx
+ 1: x
+
+/(?:a(?&abc)b){2,}(?<abc>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/<lf>
+    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/<crlf>
+    afoo
+ 0: afoo
+    \nfoo 
+ 0: \x0afoo
+    ** Failers 
+No match
+    \r\nfoo 
+No match
+
+/.+foo/<any>
+    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<any>
+    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<any>
+    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/<lf>
     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\<lf>
+ 0: abc
+    xyz\r\nabc\<lf>
+ 0: abc
+    xyz\rabc\<cr>
+ 0: abc
+    xyz\r\nabc\<crlf>
+ 0: abc
+    ** Failers 
+No match
+    xyz\nabc\<cr>
+No match
+    xyz\r\nabc\<cr>
+No match
+    xyz\nabc\<crlf>
+No match
+    xyz\rabc\<crlf>
+No match
+    xyz\rabc\<lf>
+No match
+    
+/abc$/m<lf>
+    xyzabc
+ 0: abc
+    xyzabc\n 
+ 0: abc
+    xyzabc\npqr 
+ 0: abc
+    xyzabc\r\<cr> 
+ 0: abc
+    xyzabc\rpqr\<cr> 
+ 0: abc
+    xyzabc\r\n\<crlf> 
+ 0: abc
+    xyzabc\r\npqr\<crlf> 
+ 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<cr>
+    xyz\rabcdef
+ 0: abc
+    xyz\nabcdef\<lf>
+ 0: abc
+    ** Failers  
+No match
+    xyz\nabcdef
+No match
+       
+/^abc/m<lf>
+    xyz\nabcdef
+ 0: abc
+    xyz\rabcdef\<cr>
+ 0: abc
+    ** Failers  
+No match
+    xyz\rabcdef
+No match
+       
+/^abc/m<crlf>
+    xyz\r\nabcdef
+ 0: abc
+    xyz\rabcdef\<cr>
+ 0: abc
+    ** Failers  
+No match
+    xyz\rabcdef
+No match
+    
+/.*/<lf>
+    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: 
+    \<cr>abc\ndef
+ 0: abc\x0adef
+ 1: abc\x0ade
+ 2: abc\x0ad
+ 3: abc\x0a
+ 4: abc
+ 5: ab
+ 6: a
+ 7: 
+    \<cr>abc\rdef
+ 0: abc
+ 1: ab
+ 2: a
+ 3: 
+    \<cr>abc\r\ndef
+ 0: abc
+ 1: ab
+ 2: a
+ 3: 
+    \<crlf>abc\ndef
+ 0: abc\x0adef
+ 1: abc\x0ade
+ 2: abc\x0ad
+ 3: abc\x0a
+ 4: abc
+ 5: ab
+ 6: a
+ 7: 
+    \<crlf>abc\rdef
+ 0: abc\x0ddef
+ 1: abc\x0dde
+ 2: abc\x0dd
+ 3: abc\x0d
+ 4: abc
+ 5: ab
+ 6: a
+ 7: 
+    \<crlf>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/<lf>
+    a\rb
+ 0: a\x0db
+    a\nb\<cr> 
+ 0: a\x0ab
+    ** Failers
+No match
+    a\nb
+No match
+    a\nb\<any>
+No match
+    a\rb\<cr>   
+No match
+    a\rb\<any>   
+No match
+
+/^abc./mgx<any>
+    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<any>
+    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/<crlf>
+    afoo
+ 0: afoo
+    \nfoo 
+ 0: \x0afoo
+    ** Failers 
+No match
+    \r\nfoo 
+No match
+
+/.+foo/<any>
+    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<any>
+    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<any>
+    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 <tin-dev@cgarbs.de>, 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 <oweh@ds9.argh.org>, Kai Bojens <kbojens@on-"
 	"luebeck.de>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<n>=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 <RETURN> to continue..."
 msgstr	"Drücken Sie <RETURN> 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 <CR>. 'q' to quit."
 msgstr	"Wähle Optionsnummer, oder benutze die Cursor Tasten und <CR>. '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	"<SPACE>"
 msgstr	"<LEERT>"
 
-#: 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	"<TAB>"
 msgstr	"<TAB>"
 
-#: 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	"<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"<SPACE> schaltet um, <CR> setzt, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Zeige Kurzbeschreibung für Gruppe. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> "
 	"sets."
 msgstr	"Zeigt Subject & From (Autor) Felder im Gruppenmenü. <SPACE> wechselt & <CR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Zeige -> oder Hervorhebung für Auswahl. <SPACE> wechselt & <CR> 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. <CR> sets."
 msgstr	"Prozent des Subject das gleich sein muß. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Threads nach Bewertung (Score) ordnen? <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Setze Cursor an ersten/letzten ungel. Artikel. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Zeige alle oder nur ungelesene Artikel. <SPACE> wechselt & <CR> 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 <SPACE> 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 <PGDN>/<DOWN> 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. <CR> sets, <ESC> cancels."
 msgstr	"Definiere Zeichen für gelöschte Artikel. <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Definiere Zeichen, das Artikel im Bereich anzeigt.<CR> setzt, <ESC> 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. <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Definiere Zeichen für wiederkehrende Art. <CR> setzt. <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Zeichen für Artikel mit Markierung wichtig/'hot' <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Definiere Zeichen für aktuelle Artikel. <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Zeichen für ungelesene Artikel. <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Zeichen für gelesene Artikel. <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Zeichen für gekillte Artikel. <CR> setzt, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Zeichen für gelesene wichtige/'hot' Artikel. <CR> setzt, <ESC> 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. <CR> sets."
 msgstr	"Maximale Länge des angezeigten Newsgruppennamens. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Zeige Signaturen an. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Uu-kodierte Teile als Attachment anzeigen. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"TeX german.sty Umlautkodierung auswerten. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> cancels."
 msgstr	"Öffne URLs mit ... <CR> setzt, <ESC> 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. <CR> sets."
 msgstr	"Maximale Anzahl der zu holenden Artikel eingeben. <CR> 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. <CR> sets."
 msgstr	"Anzahl der Tage, die ein Artikel als neu eingestuft wird. <CR> 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. <CR> sets."
 msgstr	"Artikel mit weniger Bewertung (Score) werden als `gekillt' markiert. <CR> "
 	"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. <CR> sets."
 msgstr	"Bewertung für gekillte Artikel. <CR> 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. <CR> 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. <CR> sets."
 msgstr	"Bewertung für wichtige Artikel (hot). <CR> 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. <CR> sets."
 msgstr	"Nach wie vielen Zeichen soll im Pager umbrochen werden? <CR> 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). <CR> sets."
 msgstr	"Standard Mail-Adresse (und Name) eingeben. <CR> 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. <CR> sets."
 msgstr	"Setze Pfad/! Kommando/--none um Ihre Signatur festzulegen. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Trenne Sig mit \"-- \" in eigener Zeile ab. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Sig. beim Reposten eines Artikels hinzufügen? <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Falls ON, füge User-Agent:-Header ein. <SPACE> wechselt & <CR> 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), <CR> to set."
 msgstr	"Zeichensatz für MIME (z.B. US-ASCII, ISO-8859-1, EUC-KR), <CR> 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. <ESC> cancels."
 msgstr	"Nur ändern, wenn Sie genau wissen, was Sie machen. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Nachbearbeitete Artikel autom. anz. <SPACE> wechselt, <CR> setzt, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Wenn ON verwende Umschreibungen. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Sendet ihnen automatisch eine Kopie. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Sendet ihnen automatisch eine blinde Kopie. <SPACE> wechselt & <CR> 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. <CR> sets."
 msgstr	"Geben Sie den Adressenteil an, vor dem Sie gewarnt werden. <CR> 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. <CR> sets."
 msgstr	"Gültigkeit eines Filtereintrags in Tagen. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Gepostete Artikel zum Filter hinzufügen. <SPACE> wechselt & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Autom. sp. von Art/Thread anhand Archive-name:-Header. <SPACE> wechselt & "
 	"<CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Gesp. Art. gelesen markieren. <SPACE> wechselt, <CR> setzt, <ESC> 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. <SPACE> wechselt, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Drucke alles oder nur Teile des Headers <SPACE> wechselt & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Starte Editor mit Einrückung. <SPACE> wechselt, <CR> setzt, <ESC> 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, <CR> to set."
 msgstr	"%E für Editor, %F für Dateiname, %N für Zeilennummer, <CR> 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, <CR> to set."
 msgstr	"%M für den Mailer, %S für Subject, %T für to, %F für Dateinamen, <CR> 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, <CR> sets, no filename=do not save."
 msgstr	"Dateiname für Kopie geposteter Artikel. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Behalte alle Fehlschläge in ~/dead.articles. <SPACE> wechselt & <CR> 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. <CR> sets."
 msgstr	"Sekunden, nach denen die active-Datei wieder gelesen wird. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Erzeuge lokale Kopien der NNTP Overview Dateien. <SPACE> wechselt & <CR> "
 	"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. <CR> sets, <ESC> cancels."
 msgstr	"Format-Zeichenkette eingeben. <CR> setzt, <ESC> 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 <rwb197@zepler.org>\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	"<n>=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	"<n>=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	"<n>=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 <RETURN> 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 <CR>. '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	"<SPACE>"
 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	"<TAB>"
 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	"<SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> "
 	"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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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 <SPACE> 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 <PGDN>/<DOWN> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> "
 	"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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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). <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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), <CR> 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. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> 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, <CR> 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, <CR> 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, <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <CR> sets, <ESC> 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 <Toomas.Soome@microlink.ee>, 2005.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 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 <Toomas.Soome@microlink.ee>\n"
 	"Language-Team: Estonian <et@li.org>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<n>=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 <RETURN> to continue..."
 msgstr	"Jätkamiseks vajutage <RETURN>..."
 
-#: 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 <CR>. 'q' to quit."
 msgstr	"Valige teksti eest omaduse number või kasutage nooli ja <CR>. '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	"<SPACE>"
 msgstr	"<TÜHIK>"
 
-#: 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	"<TAB>"
 msgstr	"<TAB>"
 
-#: 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	"<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"<TÜHIK> lülitab, <CR> seab, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Näita gruppide lühikirjeldusi. <TÜHIK> lülitab ja <CR> 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. <SPACE> toggles & <CR> "
 	"sets."
 msgstr	"Näita grupimenüüs teema ja From (autor) välju. <TÜHIK> lülitab ja <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Märgi valik -> või heleda ribaga. <TÜHIK> lülitab, <CR> 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. <CR> sets."
 msgstr	"Sisestage teema loomiseks vajalik protsentuaalne sobivus. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Järjesta artiklid Subject, From, Date, kaalu järgi. <TÜHIK> lülitab, <CR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Järjesta teemad mitte millegi või kaalu järgi. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Vii kursor grupis esimesele/viimasele lugemata artiklile. <TÜHIK> lülitab, "
 	"<CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Näita kõiki või ainult lugemata artikleid. <TÜHIK> lülitab, <CR> 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 <SPACE> 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 <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	"<PGDN>/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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage sümbol kustutatud artiklite märkimiseks. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage sümbol, mis märgib vahemikku kuuluvaid artikleid. <CR> seab, <ESC> "
 	"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. <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Sisestage tagasituleva artikli marker. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage valitud artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage värskeid artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage lugemata artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage loetud artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage surmatud artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage valitud artikleid märkiv sümbol. <CR> seab, <ESC> 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. <CR> sets."
 msgstr	"Sisestage maksimaalne näidatav grupi nime pikkus. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Näita signatuure, <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Näita uuenkodeeritud andmeid märgitud lisadena. <TÜHIK> lülitab ja <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Dekodeeri saksa TeX esituses tähed ISO koodideks. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Küsi, kas märkida väljumisel grupid loetuks. <TÜHIK> lülitab ja <CR> 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, <CR> sets, <ESC> cancels."
 msgstr	"Programm URLide avamiseks, <CR> seab, <ESC> 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. <CR> sets."
 msgstr	"Sisestage suurim laetavate artiklite arv. <CR> 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. <CR> sets."
 msgstr	"Sisestage artikli värskuse kestus. <CR> 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. <CR> sets."
 msgstr	"Sisestage minimaalne kaal artikli surmamiseks. <CR> 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. <CR> sets."
 msgstr	"Sisestage vaikimisi kaal artiklite surmamiseks. <CR> 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. <CR> sets."
 msgstr	"Sisestage minimaalne kaal, enne kui artikkel märgitakse kuumaks. <CR> 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. <CR> sets."
 msgstr	"Sisestage vaikimisi kaal artiklite valimiseks. <CR> 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. <CR> sets."
 msgstr	"Sisestage veerg, millelt lehitseja hakkab ridu murdma. <CR> 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). <CR> sets."
 msgstr	"Sisestage oma e-posti aadress (ja oma nimi). <CR> 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. <CR> sets."
 msgstr	"Sisestage tee/! käsk/--none, et luua oma vaikimisi signatuur. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Signatuurile eelnevale reale \"-- \". <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Lisa artikli uuestipostitamisel signatuur. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Kasuta User-Agent: päiserida. <TÜHIK> lülitab, <CR> 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), <CR> to set."
 msgstr	"Sisestage MIME kooditabeli nimi (n. US-ASCII, ISO-8859-15, EUC-KR), <CR> 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. <ESC> cancels."
 msgstr	"Ärge muutke, kui te ei tea, mida teete. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Vaata töödeldud faile automaatselt <TÜHIK> lülitab, <CR> seab, <ESC> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Kui väärtus on ON, kasuta transliteratsiooni. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Saada kasutajale automaatselt koopia. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Saada automaatselt pimekoopia. <TÜHIK> lülitab, <CR> 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. <CR> sets."
 msgstr	"Sisestage aadressi komponendid, mille eest peaks hoiatama. <CR> 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. <CR> sets."
 msgstr	"Sisestage kirje kehtivuse aeg päevades. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Lisage postitatud artikkel filtrisse. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Salvesta artiklid Archive-name: päiserea järgi. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Märgi salvestatud artiklid loetuks. <TÜHIK> lülitab, <CR> seab, <ESC> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Trüki kõik või ainult osa päisest. <TÜHIK> lülitab, <CR> 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. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Käivita tekstitoimeti etteantud real. <TÜHIK> lülitab, <CR> seab, <ESC> "
 	"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, <CR> to set."
 msgstr	"Kasutage %E toimeti kohal, %F failinime kohal, %N reanumbrina, <CR> 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, <CR> to set."
 msgstr	"Kasutage %M programmi kohal, %S teema kohal, %T saaja kohal, %F failinime "
 	"kohal, <CR> 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, <CR> sets, no filename=do not save."
 msgstr	"Failinimi postitatud artiklitele. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Hoia ebaõnnestunud postitused failis ~/dead.articles. <TÜHIK> lülitab ja <CR> "
 	"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. <CR> sets."
 msgstr	"Sisestage aktiivsete faili lugemise intervall sekundites. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Loo NNTP overview failidest lokaalne koopia. <TÜHIK> lülitab ja <CR> 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. <CR> sets, <ESC> cancels."
 msgstr	"Sisestage vormingusõne. <CR> seab, <ESC> 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 <tin@syrius.org\n"
 	"Language-Team: French <tin@syrius.org>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<n>=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 <RETURN> to continue..."
 msgstr	"Appuyez sur <RETOUR> 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 <CR>. 'q' to quit."
 msgstr	"Choisir un numéro ou utiliser les flèches puis <RETOUR>. '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	"<SPACE>"
 msgstr	"<ESPACE>"
 
-#: 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	"<TAB>"
 msgstr	"<TAB>"
 
-#: 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	"<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"<ESPACE> change, <RETOUR> valide, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Afficher une brève description pour chaque groupe. <ESPACE> change & <RETOUR> "
 	"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. <SPACE> toggles & <CR> "
 	"sets."
 msgstr	"Affiche le sujet & l'auteur dans le menu groupe. <ESPACE> change & <RETOUR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Affiche -> ou une barre de sélection. <ESPACE> change & <RETOUR> 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. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Trie les articles d'après un en-tête. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Trier les fils par Rien ou Score. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Place le curseur sur le 1er article non lu. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Affiche tous les articles ou seulement ceux non lus. <ESPACE> change & "
 	"<RETOUR> 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 <SPACE> past the end of an art. jumps to the next unread one."
-msgstr	"Naviguer avec <ESPACE> 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 <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	"Naviguer avec <PGDN>/<BAS> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles effacés. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles inclus. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Caractère indiquant que l'article sera retourné. <RETOUR> valide, <ESC> "
 	"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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles sélectionnés. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles récents. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles non lus. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles lus. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles filtrés. <RETOUR> valide, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Caractère indiquant les articles lus et sélectionnés. <RETOUR> valide, <ESC> "
 	"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. <CR> sets."
 msgstr	"Largeur max. à afficher des noms des groupes. <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Affiche les signatures. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Afficher les archives uue comme PJ marquées. <ESPACE> change & <RETOUR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Décode les umlauts Allemands de type TeX en ISO. <ESPACE> change & <RETOUR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Marquer lu les groupes à la fermeture ? <ESPACE> change & <RETOUR> 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, <CR> sets, <ESC> cancels."
 msgstr	"Logiciel utilisé pour lancer les URLs, <RETOUR> valide, <ESC> 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. <CR> sets."
 msgstr	"Nombre max d'articles à récupérer. <RETOUR> 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. <CR> sets."
 msgstr	"Nombre de jours un article est considéré comme récent. <RETOUR> 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. <CR> sets."
 msgstr	"Score minimal avant qu'un article soit filtré. <RETOUR> 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. <CR> sets."
 msgstr	"Score par défaut pour filtrer les articles. <RETOUR> 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. <CR> sets."
 msgstr	"Score minimal avant qu'un article soit sélectionné. <RETOUR> 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. <CR> sets."
 msgstr	"Score par défaut pour la sélection des articles. <RETOUR> 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. <CR> sets."
 msgstr	"Largeur du pager. <RETOUR> 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). <CR> sets."
 msgstr	"Adresse mail par défaut (et nom complet). <RETOUR> 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. <CR> sets."
 msgstr	"Chemin/! commande/--aucune pour la création de votre signature. <RETOUR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Précéder la signature avec \"-- \". <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Rajouter la signature lors du repostage. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Si ON, inclus l'en-tête 'User-Agent:'. <ESPACE> change & <RETOUR> 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), <CR> to set."
 msgstr	"Jeu d'encodage pour MIME (p.e. US-ASCII, ISO_8859_1, EUC_KR), <RETOUR> 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. <ESC> cancels."
 msgstr	"Ne pas changer sauf si vous savez ce que vous faites. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Visualiser automatiquement les fichiers traités. <ESPACE> change, <RETOUR> "
 	"valide, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Si ON, utilise 'translit' pour iconv_open(3). <ESPACE> change & <RETOUR> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"Vous envoie automatiquement une copie (CC). <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Vous envoie automatiquement une copie privée (BCC). <ESPACE> change & "
 	"<RETOUR> 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. <CR> sets."
 msgstr	"Être averti de ces éléments. <RETOUR> 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. <CR> sets."
 msgstr	"Entrer la durée d'un filtre (en nombre de jours). <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Créer un filtre pour les articles postés. <ESPACE> change & <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Enregistrement auto. basé sur l'en-tête Archive-name:. <ESPACE> change & "
 	"<RETOUR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Marquer lu les articles/fils enregistrés. <ESPACE> change, <RETOUR> valide, "
 	"<ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Afficher tout ou une partie des en-têtes. <ESPACE> change & <RETOUR> 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. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Lancer l'éditeur avec une ligne décalée. <ESPACE> change, <RETOUR> valide, "
 	"<ESC> 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, <CR> to set."
 msgstr	"%E pour l'éditeur, %F pour le fichier, %N pour la ligne, <RETOUR> 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, <CR> to set."
 msgstr	"%M pour le MUA, %S pour le sujet, %T pour 'to:', %F pour Fichier, <RETOUR> "
 	"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, <CR> sets, no filename=do not save."
 msgstr	"Fichier pour les articles postés, <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Garder les articles non postés dans ~/dead.articles. <ESPACE> change & "
 	"<RETOUR> 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. <CR> sets."
 msgstr	"Durée avant que le fichier active ne soit relu. <RETOUR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Créer des copies locales des en-têtes NNTP. <ESPACE> change & <RETOUR> 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. <CR> sets, <ESC> cancels."
 msgstr	"Formatage des dates. <RETOUR> valide, <ESC> 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 <andrei.emeltchenko@finik.org>, 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 <andrei.emeltchenko@finik.org>\n"
 	"Language-Team: Russian <ru@li.org>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=ÐÅÒÅÊÔÉ Ë 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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<n>=ÐÅÒÅÊÔÉ Ë 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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<n>=ÐÅÒÅÊÔÉ Ë 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 <RETURN> to continue..."
 msgstr	"îÁÖÍÉÔÅ <CR> ÄÌÑ ÐÒÏÄÏÌÖÅÎÉÑ..."
 
-#: 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 <CR>. 'q' to quit."
 msgstr	"÷ÙÂÅÒÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ ÉÌÉ ÐÅÒÅÊÄÉÔÅ ÓÔÒÅÌÏÞËÁÍÉ É ÎÁÖÍÉÔÅ <CR>. '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	"<SPACE>"
 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	"<TAB>"
-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	"<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"<ðòïâåì> ×ÙÂÒÁÔØ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"ðÏËÁÚÙ×ÁÔØ ËÏÒÏÔËÏÅ ÏÐÉÓÁÎÉÑ ÄÌÑ ËÁÖÄÏÊ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> "
 	"sets."
 msgstr	"÷Ù×ÏÄ ôÅÍÙ É á×ÔÏÒÁ × ÍÅÎÀ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
-msgstr	"÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔØ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgstr	"÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ÎÅÏÂÈÏÄÉÍÙÊ ÐÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÂßÅÄÉÎÅÎÉÑ × ÄÉÓËÕÓÓÉÀ. <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ôÅÍÅ, From, äÁÔÅ ÉÌÉ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"îÅ ÓÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÉÌÉ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"õÓÔ. ËÕÒÓÏÒ ÎÁ ÐÅÒ×ÕÀ/ÐÏÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÀ × ÇÒÕÐÐÁÈ. <ðòïâåì> ×ÙÂÏÒ, "
 	"<CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"ðÏËÁÚÙ×ÁÔØ ×ÓÅ ÓÔÁÔØÉ ÉÌÉ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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 <SPACE> 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 <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	"ðÒÏËÒÕÔËÁ <PGDN>/<DOWN> ÄÏ ËÏÎÃÁ ÓÔÁÔØÉ, ÚÁÔÅÍ ÐÅÒÅÈÏÄ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞ. "
-	"ÓÔÁÔØÀ."
-
-#: 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
 	"ÏÔÍÅÎÉÔØ."
 
-#: 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. <CR> sets, <ESC> "
 	"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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÉÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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. <CR> sets, <ESC> 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. <CR> sets."
-msgstr	"íÁÓËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÒÌÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgstr	"íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"÷Ù×ÏÄÉÔØ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"óÐÒÏÓÉÔØ ÏÂ ÏÔÍÅÔËÅ ÇÒÕÐÐ ËÁË ÐÒÏÞÉÔ. ÐÒÉ ×ÙÈÏÄÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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, <CR> sets, <ESC> cancels."
 msgstr	"ðÒÏÇÒÁÍÍÙ ÄÌÑ ÏÔËÒÙÔÉÑ URL. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
 
-#: 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. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÐÏÌÕÞÅÎÉÑ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgstr	"÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ÍÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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). <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ). <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ÐÕÔØ/! ËÏÍÁÎÄÁ/--none ÄÌÑ ÓÏÚÄÁÎÉÑ ×ÁÛÅÊ ÓÉÇÎÁÔÕÒÙ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\" × ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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), <CR> to set."
 msgstr	"÷×ÅÄÉÔÅ ËÏÄÉÒÏ×ËÕ ÄÌÑ MIME (ÎÁÐÒ. US-ASCII, ISO-8859-1, EUC-KR), <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <ESC> cancels."
 msgstr	"îÅ ÉÚÍÅÎÑÊÔÅ, ÅÓÌÉ ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ. <ESC> ÏÔÍÅÎÁ."
 
-#: 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 <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"á×ÔÏÐÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
 	"ÏÔÍÅÎÉÔØ"
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÒÁÎÓÌÉÔÅÒÁÃÉÀ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"ïÔÐÒÁ×ÌÑÔØ ×ÁÍ carbon copy Á×ÔÏÍÁÔÉÞÅÓËÉ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> 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. <CR> 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÑÔØ ÓÔÁÔØÉ/ÄÉÓË. Ó ÚÁÇÏÌÏ×ËÏÍ Archive-name:. <ðòïâåì> "
 	"×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"cancels."
-msgstr	"ïÔÍÅÔÉÔØ ÓÏÈÒÁÎÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+msgstr	"ïÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"ðÅÞÁÔÁÔØ ×ÓÅ ÉÌÉ ÔÏÌØËÏ ÞÁÓÔØ ÚÁÇÏÌÏ×ËÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, "
 	"<ESC> ÏÔÍÅÎÁ."
 
-#: 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, <CR> to set."
 msgstr	"÷×ÅÄÉÔÅ %E ÄÌÑ ÉÍÅÎÉ ÒÅÄÁËÔÏÒÁ, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, %N ÄÌÑ ÎÏÍÅÒÁ ÓÔÒÏËÉ. "
 	"<CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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, <CR> to set."
 msgstr	"÷×ÅÄÉÔÅ %M ÄÌÑ MTA, %S ÄÌÑ ÔÅÍÙ, %T ÄÌÑ To, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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, <CR> sets, no filename=do not save."
 msgstr	"éÍÑ ÆÁÊÌÁ ÄÌÑ ×ÓÅÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, ÎÅ ÉÍÅÎÉ=ÎÅ "
 	"ÓÏÈÒÁÎÑÔØ."
 
-#: 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. <SPACE> toggles & <CR> sets."
 msgstr	"äÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles. <ðòïâåì> ×ÙÂÏÒ, <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <CR> sets."
 msgstr	"÷×ÅÄÉÔÅ ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ. <CR> "
 	"ÕÓÔÁÎÏ×ÉÔØ."
 
-#: 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. <SPACE> toggles & <CR> 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. <CR> sets, <ESC> cancels."
 msgstr	"÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: 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 <murf@e-tools.com>\n"
 	"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<N Gushyiraho KIGEZWEHO Kuri N Komeza>> 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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<N Gushyiraho KIGEZWEHO Kuri N Komeza>> 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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<N Gushyiraho KIGEZWEHO Kuri N Komeza>> 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 <RETURN> 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 <CR>. '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	"<SPACE>"
 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	"<TAB>"
 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	"<SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> "
 	"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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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 <SPACE> 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 <PGDN>/<DOWN> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> "
 	"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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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). <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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), <CR> 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. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> 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, <CR> 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, <CR> 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, <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <CR> sets, <ESC> 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 <po@danielnylander.se>\n"
 	"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=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	"<n>=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	"<n>=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 <RETURN> to continue..."
 msgstr	"Tryck <RETURN> 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 <CR>. 'q' to quit."
 msgstr	"Välj alternativnummer före texten eller använd piltangenter och <CR>. \"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	"<SPACE>"
 msgstr	"<BLANKSTEG>"
 
-#: 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	"<TAB>"
 msgstr	"<TAB>"
 
-#: 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 <tp-sv@listor.tp-sv.se>."
 
-#: 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	"<SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> "
 	"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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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 <SPACE> 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 <PGDN>/<DOWN> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> "
 	"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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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). <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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), <CR> 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. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> 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, <CR> 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, <CR> 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, <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <CR> sets, <ESC> 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 <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\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 "<n>=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 "<n>=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 "<n>=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 <RETURN> 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 <CR>. '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 "<SPACE>"
 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 "<TAB>"
 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 "<SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> "
 "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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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 <SPACE> 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 <PGDN>/<DOWN> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> "
 "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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> sets, <ESC> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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. <CR> 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). <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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), <CR> 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. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> "
 "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. <SPACE> toggles, <CR> sets, <ESC> "
 "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. <SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> 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, <CR> 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, <CR> 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, <CR> 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. <SPACE> toggles & <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <CR> sets, <ESC> 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 <sebnem_k@hotmail.com>\n"
 	"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\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	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
 msgstr	"<n>=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	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr	"<n>= 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 <RETURN> to continue..."
 msgstr	"Devam etmek için <DÖNÜÞ> 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 <CR>. 'q' to quit."
 msgstr	"Metin ve ok tuþu kullanmadan seçenek ve <CR>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	"<SPACE>"
 msgstr	"<ARALIK>"
 
-#: 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	"<TAB>"
 msgstr	"<SEKME>"
 
-#: 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	"<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"<SPACE> deðiþtirir, <CR> ayarlar, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Her haber grubu için kýsa açýklama göster. <SPACE> deðiþtirir & <CR> 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. <SPACE> toggles & <CR> "
 	"sets."
 msgstr	"Grup menüsünde Konu & Gönderen (yazar) alanlarýný göster. <SPACE> deðiþtirir "
 	"& <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Çiz -> ya da seçim için vurgulanmýþ çubuk. <SPACE> deðiþtirir & <CR> 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. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Makaleleri Konu,Gönderen,Tarih ya da Skora göre sýrala. <SPACE> deðiþtirir & "
 	"<CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Ýþ parçacýklarýný Hiçbirþeye ya da skora göre sýrala. <SPACE> deðiþtirir & "
 	"<CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Ýmleci gruplardaki ilk/son okunmamýþ makalelere koyun. <SPACE> deðiþtirir & "
 	"<CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Tüm makaleleri ya da sadece okunmayan makaleleri göster.<SPACE> deðiþtirir & "
 	"<CR> 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 <SPACE> past the end of an art. jumps to the next unread one."
-msgstr	"Bir makalenin sonundan sonra <SPACE> 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 <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	"Makalenin sonundan sonra <PGDN>/<DOWN> 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. <CR> sets, <ESC> cancels."
 msgstr	"Silinmiþ makaleleri göstermek için karakter giriniz. <CR> ayarlar, <ESC> "
 	"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. <CR> sets, <ESC> cancels."
 msgstr	"Sýralanmýþ makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Makalenin döneceðini göstermek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Seçilen makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Son makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Okunmamýþ makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Yok olan makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> 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. <CR> sets, <ESC> cancels."
 msgstr	"Okunmuþ-seçilmiþ makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> "
 	"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. <CR> sets."
 msgstr	"Görünen haber gruplarýnýn en fazla uzunluðunu girin. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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, <CR> sets, <ESC> cancels."
 msgstr	"URL açmak için çalýþtýrýlan program, <CR> ayarlar, <ESC> 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. <CR> sets."
 msgstr	"Alýnacak makalenin max. sayýsýný yazýn. <CR> 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. <CR> sets."
 msgstr	"Makalenin yeni sayýlacaðý gün sayýsýný yazýn. <CR> 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. <CR> sets."
 msgstr	"Makale yok et olarak iþaretlenmeden önce minimal skoru yazýn.<CR> 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. <CR> sets."
 msgstr	"Makaleleri yok etmke için varsayýlan skoru yazýn. <CR> 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. <CR> sets."
 msgstr	"Makale 'hot' olarak iþaretlenmeden önce minimum skoru yazýn.<CR> 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. <CR> sets."
 msgstr	"Makaleleri seçmek için varsayýlan skoru yazýn.<CR> 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. <CR> sets."
 msgstr	"Sayfalayýcýdaki makale satýrlarýný çevrelemek için sütun mumarasýný yazýn. "
 	"<CR> 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). <CR> sets."
 msgstr	"Varsayýlan posta adresini (ve tüm ismi) yaz, <CR> 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. <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"ON durumdaysa, Kullanýcý-Etken baþlýðý ekleyiniz.  <SPACE> toggles & <CR> "
 	"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), <CR> 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. <ESC> cancels."
 msgstr	"Ne yaptýðýný bilmiyorsan deðiþtirme. <ESC> 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 <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Soniþemci dosyalarý otomatik olarak göster <SPACE> toggles, <CR> sets, <ESC> "
 	"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. <SPACE> toggles & <CR> sets."
 msgstr	"ON durumdaysa damga çevirisi kullan.  <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Mektup kopyasý otomatik olarak kendine gönder. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> 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. <CR> sets."
 msgstr	"uyarýlmak istediðin adres öðelerine gir <CR> 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. <CR> sets."
 msgstr	"Süz giriþin geçerli olacaðý varsayýlan günler sayýsýna gir <CR> 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. <SPACE> toggles & <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Arçivadý olarak makaleleri/iç parçacýklarý otomatik olarak kaydet: header. "
 	"<SPACE> toggles & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> "
 	"cancels."
 msgstr	"Kaydedilmiþ makaleleri /iç parçacýklarý okunmuþ olarak iþaretle. <ARALIK> "
 	"büyük küçük harf, <CR> kümeler, <ESC> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Baþlýðýn tümünü ya da bir kýsmýný yazdýr.  <SPACE> deðiþtirir & <CR> 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. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr	"Satýr kaydýrarak düzenleciyi baþlat. <ARALIK> büyük küçük harf, <CR> kümeler, "
 	"<ESC> 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, <CR> to set."
 msgstr	"Düzenleyici için %E, dosya adý için %F, satýr numarasý için %N, kümelemek "
 	"için <CR> 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, <CR> 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 <CR> 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, <CR> sets, no filename=do not save."
 msgstr	"Tüm gönderilen makaleler için dosya adý, <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"Baþarýsýz makaleleri tut ~/ölü.makale. <Aralýk> büyük küçük harf & <CR> "
 	"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. <CR> sets."
 msgstr	"Aktif dosya tekrar okunana kadar saniye miktarýný girin. <CR> 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. <SPACE> toggles & <CR> sets."
 msgstr	"NNTP giriþ sayfalarýnýn yerel kopyalarýný yarat. <SPACE> deðiþtirir & <CR> "
 	"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. <CR> sets, <ESC> cancels."
 msgstr	"Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> 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 <iain@bricbrac.de>
+ * Copyright (c) 1992-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1993-2007 Iain Lea <iain@bricbrac.de>
  * 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 <nimmich@muenster.de>
+ * Copyright (c) 1997-2007 Dirk Nimmich <nimmich@muenster.de>
  * 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 <mgk25@cl.cam.ac.uk>
+ * Copyright (c) 1993-2007 Markus Kuhn <mgk25@cl.cam.ac.uk>
  * 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 <roland@spinnaker.rhein.de>
+ * Copyright (c) 1995-2007 Roland Rosenfeld <roland@spinnaker.rhein.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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=" , &quote_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 <jason@altarstone.com>
+ * Copyright (c) 2000-2007 Jason Faultless <jason@altarstone.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 1999-2007 Jason Faultless <jason@altarstone.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
 
  * 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 <urs@tin.org>
+ * Copyright (c) 1997-2007 Urs Janssen <urs@tin.org>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <nimmich@muenster.de>
+ * Copyright (c) 2000-2007 Dirk Nimmich <nimmich@muenster.de>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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_("<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_("<SPACE> toggles, <CR> sets, <ESC> 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 <SPACE> 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 <PGDN>/<DOWN> 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_("<SPACE> toggles, <CR> sets, <ESC> 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 <iain@bricbrac.de>
+ * Copyright (c) 1993-2007 Iain Lea <iain@bricbrac.de>
  * 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 <urs@tin.org>
  *  Created   : 1998-07-27
- *  Updated   : 2003-05-16
+ *  Updated   : 2006-05-11
  *  Notes     :
  *
- * Copyright (c) 1998-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1998-2007 Urs Janssen <urs@tin.org>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1992-2007 Iain Lea <iain@bricbrac.de>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas E. Dickey <dickey@invisible-island.net>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 2000-2007 Jason Faultless <jason@altarstone.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <urs@tin.org>
+ * Copyright (c) 2001-2007 Urs Janssen <urs@tin.org>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <sven@tin.org>
+ * Copyright (c) 1996-2007 Sven Paulus <sven@tin.org>
  * 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 <michael@vorlon.ping.de>
  *  Created   : 2004-09-05
- *  Updated   : 2005-07-02
+ *  Updated   : 2006-10-01
  *  Notes     : Split from config.c
  *
- * Copyright (c) 2004-2006 Michael Bienia <michael@vorlon.ping.de>
+ * Copyright (c) 2004-2007 Michael Bienia <michael@vorlon.ping.de>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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:			/* <SPACE> */
-								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 <steve@erinet.com>
+ * Copyright (c) 1995-2007 Steven J. Madsen <steve@erinet.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <sven@oops.sub.de>
- */
+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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 1997-2007 Jason Faultless <jason@altarstone.com>
  * 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 <richard@macgyver.tele2.co.uk>
  *              hash_msgid, free_msgid
  *
- * Copyright (c) 1996-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1996-2007 Jason Faultless <jason@altarstone.com>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 1997-2007 Jason Faultless <jason@altarstone.com>
  * 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 <urs@tin.org>, Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 2000-2007 Urs Janssen <urs@tin.org>, Jason Faultless <jason@altarstone.com>
  * 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 <chris@resolution.de>
+ * Copyright (c) 1995-2007 Chris Blum <chris@resolution.de>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 2000-2007 Jason Faultless <jason@altarstone.com>
  * 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 <chris@resolution.de>
+ * Copyright (c) 1995-2007 Chris Blum <chris@resolution.de>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <arnold@skeeve.com>
+ * Copyright (c) 1991-2007 Arnold Robbins <arnold@skeeve.com>
  * 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 <urs@tin.org>
+ * Copyright (c) 1997-2007 Urs Janssen <urs@tin.org>
  * 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 <jason@altarstone.com>
+ * Copyright (c) 1999-2007 Jason Faultless <jason@altarstone.com>
  * 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 <dickey@invisible-island.net>
  *  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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1991-2007 Iain Lea <iain@bricbrac.de>
  * 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 <dickey@invisible-island.net>
@@ -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 <dickey@invisible-island.net>
+ * Copyright (c) 1997-2007 Thomas Dickey <dickey@invisible-island.net>
  * 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 <urs@tin.org>
+ * Copyright (c) 2003-2007 Urs Janssen <urs@tin.org>
  * 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 <mortarn@softhome.net> & Drazen Kacar <dave@willfork.com>
+ * Copyright (c) 2003-2007 Joshua Crawford <mortarn@softhome.net> & Drazen Kacar <dave@willfork.com>
  * 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 <iain@bricbrac.de>
+ * Copyright (c) 1993-2007 Iain Lea <iain@bricbrac.de>
  * 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 <nimmich@muenster.de>
 
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 <urs@tin.org>,
+# Copyright (c) 2002-2007 Urs Janssen <urs@tin.org>,
 #                         Marc Brockschmidt <marc@marcbrockschmidt.de>
 #
 # Redistribution and use in source and binary forms, with or without
